【问题标题】:Execute CMD Command from vb.net从 vb.net 执行 CMD 命令
【发布时间】:2016-06-17 18:13:36
【问题描述】:

您好,我想从我的 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()

执行 = "C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE" cmd Output = 'C:\Program' 没有被重新识别为内部或外部命令

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

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

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

谁能告诉我如何传递带有空格的 consol 命令? 更改目录是没有选择的,我必须在命令中放置更多目录。

【问题讨论】:

  • 考虑使用System.Management.Automation //用于powershell

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


【解决方案1】:

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

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

引用 1:起始字符串

引用 2:转义引用

引用 3:引用

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

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

引用 1:起始字符串

引用2:逃跑

引号 3:引号字符

引用 4:结束字符串

【讨论】:

  • 谢谢。这对我有用。向字符串添加三个 qoutes 不在我的列表中。 ;)
猜你喜欢
  • 2023-04-03
  • 2021-11-19
  • 2011-07-24
  • 2013-04-16
  • 2017-11-21
  • 2010-11-18
  • 2023-01-25
  • 2013-08-23
  • 2012-05-02
相关资源
最近更新 更多