我试图在PowerShell v2.0中执行以下两行代码作为作业,但遇到了问题。我认为我的语法是正确的,但我不能让它做我认为它应该做的事情,所以我显然做错了什么……
$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-expression参数是空的,但是,我原以为通过在-argumentlist参数中传递$report,它会通过?
发布于 2014-07-15 22:52:20
除非执行以下操作,否则无法直接访问$report:
-scriptblock {param($report) invoke-expression $report}param($report)部件捕获通过-ArgumentList传入的$report变量,并使其可在脚本块内使用。
https://stackoverflow.com/questions/24760346
复制相似问题