首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Start-job导致null参数

Start-job导致null参数
EN

Stack Overflow用户
提问于 2014-07-15 22:04:00
回答 1查看 1.1K关注 0票数 0

我试图在PowerShell v2.0中执行以下两行代码作为作业,但遇到了问题。我认为我的语法是正确的,但我不能让它做我认为它应该做的事情,所以我显然做错了什么……

代码语言:javascript
复制
$report = <command line thing>
invoke-expression $report

这两行代码在PowerShell中有效。但当我尝试将其放入start-job命令中时:

代码语言:javascript
复制
start-job -scriptblock {invoke-expression $report} -argumentlist $report | wait-job | receive-job

我得到以下错误:

代码语言:javascript
复制
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,它会通过?

EN

回答 1

Stack Overflow用户

发布于 2014-07-15 22:52:20

除非执行以下操作,否则无法直接访问$report

代码语言:javascript
复制
-scriptblock {param($report) invoke-expression $report}

param($report)部件捕获通过-ArgumentList传入的$report变量,并使其可在脚本块内使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24760346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档