我正在尝试将目录中文件的所有子路径分配给数组但不分配目录。
我使用以下命令:
$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | % { Write-Host $_.FullName }
输出打印到控制台,而不是保存在变量中。 有什么想法吗?
答案 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 }