如何使用Powershell[System.Diagnostics.process]启动进程:使用多个参数启动

如何使用Powershell[System.Diagnostics.process]启动进程:使用多个参数启动,powershell,process,process.start,Powershell,Process,Process.start,在PS中启动流程时: 这个很好用 [System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode") 但是,如果$param2中有空格,它将在第一个单词处被截断。Myprog.exe将在SQL表中插入作为参数传递的2个字符串 所以这很好: $param1 = "param1string" $param2 = "param2string" [System.Diagnostics.Process

在PS中启动流程时:

这个很好用

[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")
但是,如果
$param2
中有空格,它将在第一个单词处被截断。Myprog.exe将在SQL表中插入作为参数传递的2个字符串

所以这很好:

$param1 = "param1string"
$param2 = "param2string"
[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")
但这里没有。我将在表上只显示第二个参数的第一个字

$param1 = "param1string"
$param2 = "param2 string string"
[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")
如何解决此问题?

使用启动过程

看看这些例子

Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""

双引号引用参数的正确方法是:

$param1 = "param1string" 
$param2 = "`"param2 string string`""
[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")
这对我有用

是的,这就是问题所在:“指定此cmdlet启动进程时要使用的参数或参数值。如果参数或参数值包含空格,则需要用转义双引号将其括起来。”但我在找到将$param2双引号的方法时遇到了问题。有人说:Powershell中的转义字符是“`”(向后撇号/坟墓)。在我的情况下,如何使用它?