foreach 语句中的 Out-File
Out-File inside a foreach statement
我正在尝试 运行 这个脚本,它可以工作,但每次它从列表中的项目更改时,它都会删除文件并重新开始。
我需要做的是从所有用户的项目列表中获取并将它们全部放在一个文本文件中。
$sitios = Get-Content -Path C:\sitios.txt
Connect-SPOService -Url https://aaa.sharepoint.com/ -Credential Admin@aaa.onmicrosoft.com
foreach ($sitio in $sitios){
$sitio
Get-SPOUser -Site $sitio -Limit ALL | Out-File -FilePath C:\usuarios.txt
}
感谢任何帮助
您可以使用Out-File
的-Append
开关,但您所要做的就是将其移出循环。
(foreach ($sitio in $sitios){
Write-Host $sitio
Get-SPOUser -Site $sitio -Limit ALL
}) | Out-File -FilePath C:\usuarios.txt
这样所有输出都将发送到 Out-File
。我添加了 Write-Host $sitio
这样它就不会出现在文件中。您还可以使用 Set-Content
,它被认为是 Out-File
的优先选择
循环周围需要括号,以便我们可以使用管道输出。 foreach
构造不能直接从中传输数据。一个答案here涵盖了原因。
综上所述,您可以做这样的事情
$sitios | ForEach-Object{
Write-Host $_
Get-SPOUser -Site $_ -Limit ALL
} | Set-Content C:\usuarios.txt
此输出应该是一个复杂的对象,可能没有适当的 tostring 等价物。您仍然可以使用类似的方法获取所有数据。
$sitios | ForEach-Object{
Write-Host $_
Get-SPOUser -Site $_ -Limit ALL
} | Export-CSV C:\usuarios.txt -NoTypeInformation
您可以使用添加内容 Cmdlet:
https://technet.microsoft.com/en-us/library/ee156791.aspx
而不是 Out-File
使用 Add-Content
如:
[...] | Add-Content C:\usuarios.txt
我正在尝试 运行 这个脚本,它可以工作,但每次它从列表中的项目更改时,它都会删除文件并重新开始。 我需要做的是从所有用户的项目列表中获取并将它们全部放在一个文本文件中。
$sitios = Get-Content -Path C:\sitios.txt
Connect-SPOService -Url https://aaa.sharepoint.com/ -Credential Admin@aaa.onmicrosoft.com
foreach ($sitio in $sitios){
$sitio
Get-SPOUser -Site $sitio -Limit ALL | Out-File -FilePath C:\usuarios.txt
}
感谢任何帮助
您可以使用Out-File
的-Append
开关,但您所要做的就是将其移出循环。
(foreach ($sitio in $sitios){
Write-Host $sitio
Get-SPOUser -Site $sitio -Limit ALL
}) | Out-File -FilePath C:\usuarios.txt
这样所有输出都将发送到 Out-File
。我添加了 Write-Host $sitio
这样它就不会出现在文件中。您还可以使用 Set-Content
,它被认为是 Out-File
循环周围需要括号,以便我们可以使用管道输出。 foreach
构造不能直接从中传输数据。一个答案here涵盖了原因。
综上所述,您可以做这样的事情
$sitios | ForEach-Object{
Write-Host $_
Get-SPOUser -Site $_ -Limit ALL
} | Set-Content C:\usuarios.txt
此输出应该是一个复杂的对象,可能没有适当的 tostring 等价物。您仍然可以使用类似的方法获取所有数据。
$sitios | ForEach-Object{
Write-Host $_
Get-SPOUser -Site $_ -Limit ALL
} | Export-CSV C:\usuarios.txt -NoTypeInformation
您可以使用添加内容 Cmdlet:
https://technet.microsoft.com/en-us/library/ee156791.aspx
而不是 Out-File
使用 Add-Content
如:
[...] | Add-Content C:\usuarios.txt