在下面的PowerShell语句中,看起来{}中的第一个表达式运行一次,因为{}中的第二个表达式为每个管道输出运行,为什么?
1..5 | foreach{ write-host "Run Once!!" }{ write-host "Loop"}
输出: 跑一次!! 环 环 环 环 环
foreach之后的第一个表达式只运行一次的具体原因是什么?
答案 0 :(得分:0)
您编写它的方式使其像高级函数 BEGIN / PROCESS / END 构造一样运行。像这样:
PS C:\> 1..5 | foreach -Begin{ write-host 'Run Once!!' }-Process { write-host 'Loop'} -End{Write-Host 'Finished!'}
Run Once!!
Loop
Loop
Loop
Loop
Loop
Finished!
当您执行需要多个步骤处理的特定事项时,您希望这样做:
BEGIN
{
Connect to something
}
PROCESS
{
Do number of things
}
END
{
Disconnect
}