从 vb.net 执行 CMD 命令

Execute CMD Command from vb.net

嗨,我想从我的 vb.net 应用程序启动一个程序。

我遇到的问题是命令中有空格。 我的代码如下所示:

Dim p As New Process
Dim pi As ProcessStartInfo = New ProcessStartInfo()
execute = generateStatement(project)
pi.FileName = "cmd.exe"
pi.UseShellExecute = False
pi.RedirectStandardOutput = True
pi.Arguments = "/K " + execute
p.StartInfo = pi
p.Start()

execute = "C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE" cmd Output = 'C:\Program' is not reconized as internal or external command

然后我尝试在字符串之前和之后添加引号(添加 Char 34):

execute = ""C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE""

仍然是相同的 cmd 输出。 所以我通过 Shell 尝试了命令,仍然是同样的问题。

谁能告诉我如何传递带空格的 consol 命令? 不能更改目录,我必须在命令中添加更多目录。

你走在正确的轨道上:要在参数中转义引号,你可以使用引号。但是,您还必须将转义的带引号的字符串放入字符串中,所以实际上,您最终会在定义执行的地方得到三个引号。

execute = """C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE"""

引用 1:开始字符串

引用 2:转义引用

引用 3:引用

或者,在构建时转义 pi.arguments:

pi.Arguments = "/K " + """" + execute """"

引用 1:开始字符串

引用 2:逃跑

引号3:引号字符

引用 4:结束字符串