如果我在命令窗口输入:
"D:\databases\MySQL-5_0(x64)\bin\mysql.exe" -u root betting < "W:\data\projects\temp\example.sql"
有效
下一个任务在我自己的计算机程序上面运行...
1) 使用shellexecute直接用上面的参数调用mysql对我来说不起作用。研究SO我发现原因是CMD做管道&gt;东西。
2) 在 cmd.exe 上调用shellexecute
cmd / c“D:\ databases \ MySQL-5_0(x64)\ bin \ mysql.exe”-u root betting&lt; “W:\数据\项目\ TEMP \ example.sql”
Delphi代码示例:
S := '"D:\databases\MySQL-5_0(x64)\bin\mysql.exe" -u root betting < "W:\data\projects\temp\example.sql"';
S := '/c ' + S;
ShellExecute(
0,
'open',
'cmd.exe',
PChar(S),
nil,
SW_SHOWMAXIMIZED
);
也不起作用。
要查看问题所在,我尝试将以下内容放入已打开的命令行提示符窗口中,如下所示:
cmd.exe /c "D:\databases\MySQL-5_0(x64)\bin\mysql.exe" -u root betting < "W:\data\projects\temp\example.sql"
给出错误
'D:\ databases \ MySQL-5_0'未被识别为内部或外部 命令,可操作程序或批处理文件。
这令我感到困惑,因为我对双引号的使用应该是正确的。但试着这样做:
cmd.exe /c "mysql.exe" -u root betting < "W:\data\projects\temp\example.sql"
仍然出错:
'mysql.exe'无法识别为内部或外部命令, 可操作程序或批处理文件。
我已经达到了我认为的尝试。
任何人都可以了解如何通过命令行指令成功执行mysql ha指示mysql执行SQL文件吗?