「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 }
このスクリプトを実行すると、次のように出力されます。
d:\ > function f([ScriptBlock]$s)
{
1..10 | & $s
}
f { Write-Host mm }
mm
変ですね!スクリプト自体が出力されます。PS4.0 と ISE を実行しています。何故ですか?