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



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

我正在使用以下命令:

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

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

之所以写入控制台是因为您正在说Write-Host。如果使用Write-Output,它将保存到变量中。

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

或者尝试使用"选择对象"而不是写入主机。

它看起来像这样:

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

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

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

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

最新更新