我希望将“Write-Host mm”作为脚本块传递给函数“f”,我希望“f”会执行 10 次,所以我尝试了:
function f([ScriptBlock]$s)
{
1..10|$s
}
f(Write-Host mm)
不幸的是,powershell 给出了错误:
At C:\Users\engineer\Documents\Untitled1.ps1:3 char:11
+ 1..10|$s
+ ~~
Expressions are only allowed as the first element of a pipeline.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline
How to correct my script?
感谢杰森的第一个回答,但似乎不起作用:谢谢,但似乎这不起作用,我有 PS 4.0 和
function f([ScriptBlock]$s)
{
1..10 | & $s
}
f { Write-Host mm }
执行这个脚本并打印出来:谢谢,但这似乎不起作用,我有 PS 4.0 和
d:\ > function f([ScriptBlock]$s)
{
1..10 | & $s
}
f { Write-Host mm }
mm
这很奇怪!一个脚本自己打印出来!我有 PS4.0 并正在运行 ISE。这是为什么?