1

我似乎无法弄清楚为什么传递给 start-job 的输入会消失。我在一个脚本中有这段代码:

$data = "some test string data"
Start-Job -FilePath ".\Tasks.ps1" -InputObject $data

tasks.ps1脚本中,除非我立即调用它,否则我会得到对象的空值,$input但这样做后会消失:

$input #displays the data
$input #null

我已经尝试立即将其分配给另一个变量 ( $newvalue = $input),但该变量的值也显示为 null。

我在这里想念什么?如何保留输入数据?

4

1 回答 1

1

好的,我找到了问题所在。$input 对象作为PilelineReader传递,我假设在作业中调用它是 ReadToEnd。当我将 $input 分配给一个变量时,我发送的是 PipeLineReader 而不是它的值。为了解决这个问题,我使用了这个:

[string]$newData = $input

这可以防止在访问对象时发生读取操作。

于 2013-01-31T04:48:07.047 回答