从 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:结束字符串
嗨,我想从我的 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:结束字符串