【问题标题】:Pass Input Object to Start-Job File将输入对象传递给 Start-Job 文件
【发布时间】:2013-01-31 13:29:20
【问题描述】:

我似乎无法弄清楚为什么传递给 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。

我在这里缺少什么?如何保留输入数据?

【问题讨论】:

标签: powershell powershell-2.0


【解决方案1】:

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

[string]$newData = $input

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-02
    • 2013-01-17
    • 2017-10-08
    • 2021-10-03
    • 1970-01-01
    • 2013-03-12
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多