Powershell scriptblock传递参数(被视为“重复的”解决方案-无答案)

时间:2018-11-17 08:50:27

标签: powershell arguments parameter-passing scriptblock

这应该是一个非常明显的问题...并且我已经研究了建议的“重复”答案...没有办法...只有我的“硬编码解决方案有效:-( 我只想在Start-Job-ScriptBlock {}命令中有一个参数(路径)。这是我的情况:

rsync

这很好用,但是经过硬编码;以下是我尝试未成功的许多解决方案中的一些:

$MyVariable = "C:\TestPath\Load.ps1"
Start-Job -ScriptBlock { C:\TestPath\Load.ps1 ; while($true) { Get-DataX | Add-ToTable "XXX" ; Start-sleep -s 120}}

但是它们都不起作用...那么,如何在Start-Job -ScriptBlock {...}行内传递$ MyVariable呢?也许我的问题出在其他地方?想法非常受欢迎...

谢谢!

菲利普

1 个答案:

答案 0 :(得分:0)

应该看起来像这样:

Start-Job -ScriptBlock {
    param($MyVariable) 
        Get-ChildItem $MyVariable; 
        while($true) 
        { Get-DataX ; Start-sleep -s 120}
    } -ArgumentList $MyVariable

这是一个很棒的article,它将帮助您了解有关Powershell中脚本块的更多信息。