2014-07-15 38 views
0

我試圖在PowerShell v2.0中執行以下兩行代碼作爲工作,但遇到了麻煩。我想我有語法正確的,但我不能讓它做什麼,我認爲它應該做的,所以我很清楚我做錯了什麼......開始工作導致null參數

$report = <command line thing> 
invoke-expression $report 

這兩條線在PowerShell中工作。但是,當我試圖把它變成一個Start-Job命令:

start-job -scriptblock {invoke-expression $report} -argumentlist $report | wait-job | receive-job 

我得到以下錯誤:

Cannot bind argument to parameter 'Command' because it is null. 
    + CategoryInfo   : InvalidData: (:) [Invoke-Expression], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.InvokeExpre 
    ssionCommand 
    + PSComputerName  : localhost 

我的理解是錯誤的話說,這說法我傳遞的invoke-表達式爲空,但是,我認爲通過-argumentlist參數中的$report,它會通過?

回答

0

您不能訪問$report直接除非你做:

-scriptblock {param($report) invoke-expression $report} 

param($report)部分捕獲$report變量通過-ArgumentList傳遞,並使其可用於腳本塊內使用。

相關問題