PowerShell Foreach输出问题

时间:2018-04-19 16:11:39

标签: powershell foreach

我正在尝试将我的命令输出吐出到csv中。我能做的最好的就是让它在powershell屏幕上显示。我怎么能做到这一点?

 $computers = Get-Content -Path C:\folder\file.csv
 $numbers = @($computers)

 Foreach ($i in $computers) {
   Get-adcomputer $i -properties CanonicalName 

 }  Export-CSV c:\folder2\finalfile.csv

如果尝试了常见问题解答中的不同示例,但它们不能满足我的需求。

我很感激帮助。

谢谢,

维克多

1 个答案:

答案 0 :(得分:0)

  • 您永远不会向Export-CSV发送任何对象。 Foreach($item in $array)不能与管道一起使用(如果您缺少|),因此您必须先将结果存储在列表或数组中。我会切换到Foreach-object和管道。
  • Get-Content用于阅读文本(例如,每行一台计算机),但您的文件类型建议使用csv(通常为多列),您可以使用Import-CSV阅读。既然你说它有效,我会假设它实际上只是一个名单,所以我保留了Get-Content
  • $numbers未使用

尝试:

Get-Content -Path C:\folder\file.csv | Foreach-Object {
    Get-ADComputer -Identity $_ -Properties CanonicalName
} | Export-CSV c:\folder2\finalfile.csv -NoTypeInformation