使用包含来自 vb.net 的空格的参数启动 exe

Launching exe with parameters containing whitespace from vb.net

我需要做的事情:
我有一个路径(从工作快捷方式复制)到我需要从我的 vb.net 应用程序启动的 .exe。以下路径:

"C:\Program Files (x86)\Citrix\ICA client\pnagent.exe" /CitrixShortcut: (2) /QLaunch "Farm1:ADS @ Citrix"

我的问题:
我不知道该怎么做。我最好的猜测是

Process.Start("cmd", "/k " & path)

但这总是以 cmd 回馈结束

'C:\Program' is not recognized as an internal or external ...

我知道这是因为路径没有被正确转义,但我不知道如何正确转义。我知道如何使用双双引号 (""),但我也做不到。

如果有人能给我指出比 Process.Start() 更好的方法,我也会很高兴!

我认为您想要的 Process.Start() 重载是
Process.Start(程序, args).

...这会给你

Process.Start("C:\Program Files (x86)\Citrix\ICA client\pnagent.exe", "/CitrixShortcut: (2) /QLaunch ""Farm1:ADS @ Citrix"" ")

编辑/澄清:
cmd /k 启动命令 shell(又名 "DOS prompt")但在 运行 指定命令后保持打开状态(与 cmd /c 执行命令然后关闭相反shell).
如果您想执行 DIRCOPY.

等内置 shell,您通常只启动 cmd
Dim MyProcess as string = "C:\Program Files (x86)\Citrix\ICA client\pnagent.exe"
Dim MyArgs as string = "/CitrixShortcut: (2) /QLaunch ""Farm1:ADS @ Citrix"""

Process.Start(MyProcess, MyArgs)