如何在此PowerShell脚本中将参数传递到批处理文件



我在PowerShell中有类似于以下的语法:

param($1,$2,$3,$4)
$Session = New-PSSession -ComputerName $1
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock("cmd /c $2 $3 $4")
Invoke-Command -Session $Session -ScriptBlock $scriptblock

其中$2是.bat,$3&4是我想传递给可执行文件的参数。如果我在没有参数的情况下运行它,我可以运行.bat,但当我添加参数时,它会失败。我做错了什么?

编辑:为了提供更多信息,我通过在PowerShell中运行以下命令来调用上面的命令:

-ExecutionPolicy Bypass -F "powershellscript for the above" -1 "value" -2 "value" -3 "value" -4 "value"

若要在远程会话中使用本地变量,必须在它们前面加上$Using:scope修饰符。

试试这个:

param($1,$2,$3,$4)
$Session = New-PSSession -ComputerName $1
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock({ cmd /c $Using:2 $Using:3 $Using:4 })
Invoke-Command -Session $Session -ScriptBlock $scriptblock

最新更新