![](/img/trans.png)
[英]C# call command get 'C/:Program' not recognized as an internal or external command
[英]'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\\\\MetaTrader
、 5\\\\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.