这两个命令之间的根本区别是什么?
$myVar = & "notepad.exe"
和
& "notepad.exe" | Set-Variable "myVar"
对于第一个命令,命令立即返回,而无需等待exe终止,这不是我期望的。
对于第二个(或其他任何带有管道的内容,例如| Out-File
或| Set-Content
),该命令将正确等待exe将结果写入stdout并终止。
答案 0 :(得分:0)
管道只不过是从第一个集合中获取输出并将其作为输入传递给第二个。管道就像一系列连接的管道段。沿管道移动的物料必须穿过每个段。
在您的情况下,Powershell实际上在两种情况下都在等待。但是如果使用Measure-Command
,则执行时间会有差异,对于$myVar = & "C:\path to\program.exe" $argument