我正在尝试将foreach
循环中的输出传递到format命令中,但是它不起作用。我认为可能的原因是因为这可行。
$op = foreach ($file in (Get-ChildItem -File)) {
$file |
Get-Member |
Where-Object {$_.MemberType -eq "Method" -and $_.Definition -like "*system*" } |
Select-Object -Property Name, MemberType
}
$op | Format-List
如果我可以将整个输出分配给一个变量,然后将该变量通过管道传递给另一个命令,为什么以下命令不起作用?
(foreach ($file in (Get-ChildItem -File)) {
$file |
Get-Member |
Where-Object {$_.MemberType -eq "Method" -and $_.Definition -like "*system*" } |
Select-Object -Property Name, MemberType
}) | Format-List
当然,我在没有父母的情况下尝试过,但最终我认为,如果有的话,父母是有道理的。就像$file in (Get-ChildItem -File)
在父母中评估表达式并将结果用作实际对象一样
有没有办法使这项工作?
请注意,除了给出示例机制之外,该代码不应实现任何其他目的
foreach
没有可以捕获的输出(除了通过变量赋值找到的糖之外),但是可以通过将其包装在子表达式中来收集所有返回的对象:
$(foreach ($file in Get-ChildItem -File) {
# ...
}) | Format-List
同样的模式也可以用于if
和switch
语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句