在PowerShell中,foreach并且%是默认的别名ForEach-Object。但是,该命令的行为似乎取决于它的调用方式。
特别是,除非我专门使用foreach别名,否则我很难在不从管道中提供输入的情况下让命令工作。

我在这里做错了什么,还是出于某种原因设计的?
foreach 语句和 Foreach-Object Cmdlet不是一回事。
其中之一:
在 Foreach-Object 的情况下,一旦产生每个对象,就会执行语句体。在 foreach 语句中,在循环体开始执行之前收集所有对象。这有两个含义
还存在性能和语法差异。
$i = @(1..3) | ForEach-Object {Write-Host $_}
Run Code Online (Sandbox Code Playgroud)
在 Foreach-Object 中有效。
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |