使用包含来自 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).
如果您想执行 DIR
或 COPY
.
等内置 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)
我需要做的事情:
我有一个路径(从工作快捷方式复制)到我需要从我的 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).
如果您想执行 DIR
或 COPY
.
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)