'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 试图执行的是带有参数 Files\MetaTrader
、5\terminal64.exe
等的命令 C:\Program
。这就是您的错误消息的来源。
解决这个问题的一种方法是在文件名周围添加额外的引号(正如 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");
您应该试验一下是否需要在该应用程序名称周围加上额外的引号,但我认为不需要。
试图将下面的代码发送到命令行,但出现错误。我知道发送到 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 试图执行的是带有参数 Files\MetaTrader
、5\terminal64.exe
等的命令 C:\Program
。这就是您的错误消息的来源。
解决这个问题的一种方法是在文件名周围添加额外的引号(正如 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");
您应该试验一下是否需要在该应用程序名称周围加上额外的引号,但我认为不需要。