如何从另一个脚本中调用powershell脚本? 这不起作用:
$param1 = "C:/Users/My Folder/file1"
$param2 = "C:/Users/My Folder/file2"
$command = "C:/Users/My Folder/second.ps1"
Invoke-expression $command -File1 $param1 -File2 $param2
... Second.ps1:
param(
[string]File1, [string]File2)...
答案 0 :(得分:0)
如果没有空格:
Invoke-expression "$command $param1 $param2"
如果你知道空格在哪里:
Invoke-expression "$command `$param1HasSpaces` $param2"
注意:如果您的执行政策受到限制(请使用get-executionpolicy
检查:
Invoke-Expression "powershell -executionpolicy bypass -command `"$command $param1 $param2`""
答案 1 :(得分:0)
如果你稍微改变你的方法,你可以这样做。基本上创建要执行的命令字符串,然后从中创建一个scriptblock对象,然后使用Invoke-Command而不是Invoke-Expression。
$param1 = "C:/Users/My Folder/file1"
$param2 = "C:/Users/My Folder/file2"
$command = "C:/Users/My Folder/second.ps1"
$str = '{0} -File1 "{1}" -File2 "{2}"' -f ($command, $param1, $param2)
$sb = [scriptblock]::Create($str)
Invoke-Command -ScriptBlock $sb