我正在将以下参数传递给流程开始
\ 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);