Export-CSV 不适用于我的 foreach 循环
Export-CSV not working with my foreach loop
我写了一段代码,它捕获一些数据并将其写入 CSV 文件。我用两种方式写了它。 1)第一种方式只给我最后的结果,而不是所有的结果,几乎就好像它是在写自己一样。 2) 第二种方式给我一个错误 "An Empty Pipe Element Is Not Allowed"
方法 1)
foreach ($Computer in $CompObjToRM)
{
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation
}
方法 2)
foreach ($Computer in $CompObjToRM)
{
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName
} | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation
我做错了什么?
或者将 -Append
开关参数与 Export-Csv
一起使用,以避免它覆盖同一个文件:
foreach ($Computer in $CompObjToRM)
{
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -Append -NoTypeInformation
}
或使用 ForEach-Object
cmdlet(您可以从中将所有输出传输到 Export-Csv
)
$CompObjToRM |ForEach-Object {
Get-ADComputer -Identity $_ | Select Name, DistinguishedName
} | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation
这里最大的区别是 foreach($thing in $things){}
是语言的内置语义特征,而 ForEach-Object
是 cmdlet - 一段可重用代码支持管道输入和输出。
ForEach-Object
可能比 foreach
循环慢一点(并且行为略有不同),但在大多数情况下,它只是为您提供更大程度的灵活性来编写您的管道
我写了一段代码,它捕获一些数据并将其写入 CSV 文件。我用两种方式写了它。 1)第一种方式只给我最后的结果,而不是所有的结果,几乎就好像它是在写自己一样。 2) 第二种方式给我一个错误 "An Empty Pipe Element Is Not Allowed"
方法 1)
foreach ($Computer in $CompObjToRM)
{
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation
}
方法 2)
foreach ($Computer in $CompObjToRM)
{
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName
} | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation
我做错了什么?
或者将 -Append
开关参数与 Export-Csv
一起使用,以避免它覆盖同一个文件:
foreach ($Computer in $CompObjToRM)
{
Get-ADComputer -Identity $Computer | Select Name, DistinguishedName | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -Append -NoTypeInformation
}
或使用 ForEach-Object
cmdlet(您可以从中将所有输出传输到 Export-Csv
)
$CompObjToRM |ForEach-Object {
Get-ADComputer -Identity $_ | Select Name, DistinguishedName
} | Export-CSV C:\T2\ServersToRemoveFromAD2.csv -NoTypeInformation
这里最大的区别是 foreach($thing in $things){}
是语言的内置语义特征,而 ForEach-Object
是 cmdlet - 一段可重用代码支持管道输入和输出。
ForEach-Object
可能比 foreach
循环慢一点(并且行为略有不同),但在大多数情况下,它只是为您提供更大程度的灵活性来编写您的管道