これは何も返しません:
$x = "C:\temp"
Start-Job -ScriptBlock {get-childItem -path $x} | Wait-Job | Receive-job
しかし、そのように、変数なしでパスパラメーターを提供します...
Start-Job -ScriptBlock {get-childItem -path C:\temp} | Wait-Job | Receive-job
...その一時フォルダーの内容、この場合は durrr.txt を返します。これは Windows Server 2008R2 SP1 で、Powershell $host.version の出力は次のようになります。
Major Minor Build Revision
----- ----- ----- --------
3 0 -1 -1
Powershell の v3 を疑って、Windows 7 SP1 デスクトップを v2 から v3 に更新しようとしましたが、問題を再現できませんでした。アップグレードされたデスクトップでは、$host.version の出力が上記と一致するようになりました。
どうしたの?
編集/何が起こっていたのですか?
バストされた仕事は同等のようです
Start-Job -ScriptBlock {get-childItem -path $null} | Wait-Job | Receive-job
そのため、gci はバックグラウンド ジョブの現在のディレクトリである Documents フォルダーの結果を返しましたが、これはたまたま空でした。