我正在尝试编写一个powershell脚本,该脚本将从指定的URL下载exe(在调用脚本时作为参数传递(
我的代码:
Param(
[Parameter(Mandatory=$true,
ValueFromPipeline=$true)]
[String]
$cwdl
)
Start-Job -Name WebReq -ScriptBlock { Invoke-WebRequest $cwdl -OutFile "C:MYFILEPATHcw.exe" }
Wait-Job -Name WebReq
如果我用"mypathtoxefile"替换$cwdl,那么它就可以工作了。但是对于$cwdl变量,它什么也不做。我甚至尝试过静态地将$cwdl设置为$cwdl="mypathtoxefile"和$cwdl="mypathToxefile",但我没有尝试过允许InvokeWebRequest在我使用变量时解析文件路径,无论它是否由参数生成。
示例8:将输入传递到后台作业此示例使用$input自动变量来处理输入对象。使用接收作业可以查看作业的输出。PowerShell
复制启动作业-ScriptBlock{Get-Content$input}-InputObject"C:\Servers.txt"接收作业-名称作业45-保留
服务器01服务器02服务器03服务器04Start Job使用ScriptBlock参数使用$input自动变量运行Get Content。$input变量从InputObject参数获取对象。接收作业使用Name参数指定作业并输出结果。Keep参数保存作业输出,以便在PowerShell会话期间可以再次查看。