从vb.net执行CMD命令

时间:2016-03-04 05:40:07

标签: vb.net shell cmd command command-line-interface

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

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

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输出=' C:\ Program'未被重新确定为内部或外部命令

然后我试着把Quotes(添加Char 34)改为befor而不是像这样的字符串:

  

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

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

有人可以告诉我如何传递带空格的consol命令吗? 更改目录是没有选择的,我必须在命令中添加更多目录。

1 个答案:

答案 0 :(得分:0)

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

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

引用1:开始字符串

引用2:逃避报价

引用3:引用

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

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

引用1:开始字符串

引用2:逃避

引用3:引用字符

引用4:结束字符串