Process.Start cmd.exe和路径中的空格-引号无效,但可以

时间:2018-07-11 00:59:18

标签: path processstartinfo

我正在将以下参数传递给流程开始

\ K“ D:\ Scheduled Tasks \ MysqlDump \ mysql-8.0.11-winx64 \ bin \ mysqlpump.exe”

我得到:

  

'D:\ Scheduled'不被识别为内部或外部命令,   可操作的程序或批处理文件。

如果我从startInfo.Arguments中获取文本并将其复制到命令提示符中,则它将正常工作:

  

D:>“ D:\预定   Tasks \ MysqlDump \ mysql-8.0.11-winx64 \ bin \ mysqlpump.exe“ mysqlpump:   错误:2003:无法连接到“本地主机”上的MySQL服务器(10061)   连接到MySQL服务器mysqlpump时:[错误](11)转储   进程遇到错误,将无法继续。

为什么某个命令无法通过process.start运行,但是如果您使用SAME命令文本打开提示符,则可以直接运行?

我使用格式字符串引用路径:

ProcessStartInfo startInfo = new ProcessStartInfo();                   
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.WorkingDirectory = "D:\\";                          
startInfo.FileName = "cmd.exe";  
startInfo.Arguments = "/K " + string.Format("\"{0}\"", mysqlpumppath); 

0 个答案:

没有答案