繁体   English   中英

“C:Program”未被识别为内部或外部命令

[英]'C:Program' not recognized as an internal or external command

尝试将下面的代码发送到命令行,但出现错误。 我知道发送到 CMD 的反斜杠存在问题。 这里有关于如何发送的帮助吗? 谢谢!

string strCmdText="/C C:\\Program Files\\MetaTrader 5\\terminal64.exe /config:C:\\Users\\vguer036\\AppData\\Roaming\\MetaQuotes\\Terminal\\D0E8209F77C8CF37AD8BF550E51FF075\\config\\common.ini";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);

当你使用这个:

string strCmdText="/C C:\\Program Files\\MetaTrader 5\\terminal64.exe /config:C:\\Users\\vguer036\\AppData\\Roaming\\MetaQuotes\\Terminal\\D0E8209F77C8CF37AD8BF550E51FF075\\config\\common.ini";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);

那么您正在尝试启动应用程序 CMD.exe,它反过来指示您执行特定的应用程序。 但是,由于空格,CMD 尝试执行的是命令C:\\\\Program和参数Files\\\\MetaTrader5\\\\terminal64.exe等。这就是您的错误消息的来源。

解决此问题的一种方法是在文件名周围添加额外的引号(如 Dour High Arch 评论的那样):

string strCmdText=@"/C ""C:\Program Files\MetaTrader 5\terminal64.exe"" ""/config:C:\Users\vguer036\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\config\common.ini""";

请注意双引号,这是在逐字字符串文字( @"..." )中使用文字引号所必需的。

但是这样你仍然在执行一个应用程序 (CMD.exe) 来启动另一个 (terminal64.exe)。 为什么不直接启动那个terminal64呢?

System.Diagnostics.Process.Start(
     @"C:\Program Files\MetaTrader 5\terminal64.exe",
     @"/config:C:\Users\vguer036\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\config\common.ini");

您应该尝试看看是否需要在该应用程序名称周围加上额外的引号,但我不这么认为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM