将父目录中的所有子路径分配给数组

时间:2015-10-16 17:05:08

标签: arrays powershell powershell-v2.0 powershell-v3.0

我正在尝试将目录中文件的所有子路径分配给数组但不分配目录。

我使用以下命令:

 $a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | % { Write-Host $_.FullName }

输出打印到控制台,而不是保存在变量中。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

它写入控制台的原因是因为你在说Write-Host。如果您改为使用Write-Output,它将保存到变量中。

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | % { Write-Output $_.FullName }

或者尝试使用“Select-Object”而不是写主机。

看起来像这样:

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | select-object -expand FullName

答案 1 :(得分:0)

仅显示Write-Host的控制台输出,而不是返回。

您需要先将值保存在变量中,然后才能打印出来:

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer };
$a | % { Write-Host $_.FullName }