下面是执行命令的代码:
ShellExecute(0, nil, 'cmd.exe', PWideChar('/c '+cmd+' & pause'), nil, SW_SHOW);
字符串
使用cmd的以下内容(引号出现在字符串中):
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" --user=root --password=root --port=3306 --host=localhost --add-drop-database --add-drop-table --hex-blob db > "C:/backup/db.sql"
型
输出错误:
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
型
从手动打开的cmd.exe示例运行完全相同的命令可以工作,所以这是ShellExecute的问题,但我不知道我可以做些什么来调试它。
编辑:我试着用正斜杠代替反斜杠,以防这是问题所在,但事实并非如此。
1条答案
按热度按时间vwoqyblh1#
我从没做过这个我总是使用Raize / Konopka Launch组件。它是GetIt中的库的一部分。事实上,我前几天刚刚用它运行了一个shell,该shell运行了程序生成的包含curl语句的bat文件。我在最后放了一个“暂停”,让我在它关闭之前检查它。
你也可以通读代码,看看它在做什么,如果你想DIY。