2011-04-01 205 views
1

我的应用程序将运行一个命令是这样的:运行shell命令

WCO -f“C:\工作\ 6.70防爆\主Build.Txt”

我做什么是我平时开cmd并手动键入上面的行。

我试图用一个脚本自动完成:

  string strCmdText = "wco -f C:\Work\6.70 ex\Master Build.Txt"; 
      System.Diagnostics.Process.Start("CMD.exe", strCmdText); 

因为空格它变得扑朔迷离不过。 请帮忙

+0

尝试'“WCO -f‘’C:\工作\ 6.70前\主构建.Txt“”“' – 2011-04-01 07:42:21

回答

1

你需要逃避你的论点,就像你在命令行上做,再加上你需要逃避你反斜线:

string strCmdText = "wco -f \"C:\\Work\\6.70 ex\\Master Build.Txt\""; 
System.Diagnostics.Process.Start("CMD.exe", strCmdText); 
+0

嗨克里斯这工作。谢谢 – jeremychan 2011-04-01 07:55:32

0

您将需要使用C#中的转义字符\

string strCmdText = "wco -f \"C:\Work\6.70 ex\Master Build.Txt\""; 
System.Diagnostics.Process.Start("CMD.exe", strCmdText); 

但是,如果“世界海关组织”是一个可执行文件,你应该用实际的代码是

string strCmdText = "-f \"C:\Work\6.70 ex\Master Build.Txt\""; 
System.Diagnostics.Process.Start("wco", strCmdText); 

这可能会更容易将输出重定向。

2

如果要使用cmd.exe运行程序,则需要添加/C/K开关。/C开关运行该命令,然后退出cmd.exe。/K运行该命令,然后打开cmd.exe。

cmd.exe /K echo hello 

我假设wco是你的程序?如果是这样,你可以绕过使用cmd.exe,直接调用wco.exe。

+0

是的,wco是我的程序。感谢您的信息 – jeremychan 2011-04-01 07:45:52