首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Start-Job中通过引用传递变量?

如何在Start-Job中通过引用传递变量?
EN

Stack Overflow用户
提问于 2018-10-24 21:55:47
回答 1查看 739关注 0票数 2

如何在Start-Job中修改变量?这段代码输出0,似乎是因为变量是通过值传递的:

代码语言:javascript
复制
$vara = "0"

$j = start-job -ScriptBlock {
   $args[0] = "1"
} -ArgumentList $vara

wait-job $j > $null
receive-job $j

Write-Host $vara  ## => "0"

如何通过引用传递参数(因此,输出1)?

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 22:02:05

当修改作业中的任何内容时,您完全超出了范围。任何东西都不会在你当前的会话中神奇地填充。

你可以这样做:

代码语言:javascript
复制
$vara = "0"

$j = start-job -ScriptBlock {
   "1"
} -ArgumentList $vara

wait-job $j > $null
$vara = receive-job $j

Write-Host $vara

如果你需要填充很多参数,你可以这样做:

代码语言:javascript
复制
$vara = "0"

$j = start-job -ScriptBlock {
   [pscustomobject]@{
      vara1 = "1"
      vara2 = "0"
    }
} -ArgumentList $vara

wait-job $j > $null
$vara = receive-job $j

Write-Host $vara.vara1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52970853

复制
相关文章

相似问题

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