gpt4 book ai didi

delphi - 通过 ShellExecute 的 Mysqldump 不起作用

转载 作者:行者123 更新时间:2023-11-30 00:31:57 25 4
gpt4 key购买 nike

我正在尝试使用 ShellExecute 运行 mysqldump 从 delphi 备份我的 mysql 数据库。这就是我使用 mysqldump 的方式:

MySqlDump.exe -u root  -p[password]  [databasename] > TheOutputFile.Sql

这可以在命令提示符下运行。

我使用 ShellExecute 调用此命令行:

  ShellExecute(
0,
nil,
'cmd.exe',
'C:\SmartRetail\Test System\Periodic database backup\MySqlDump.exe -u root -p123 smartretailprogramdata > TheOutputFile2.Sql',
nil,
SW_SHOW
);

这不起作用,而是打开命令提示符。我做错了什么?

最佳答案

它会打开命令解释器,因为这就是cmd.exe。您需要指定 /C 来告诉 cmd 进程在解释完您的命令后关闭。

最重要的是,您需要管理工作目录。除非 .sql 文件位于工作目录中,否则转储进程将找不到它。并且工作目录是从父进程继承的,因为您没有指定它。您可能需要指定工作目录。

最后,ShellExecute 确实是错误的解决方案。您仅使用它来获取标准输出重定向。但这确实应该明确地完成。请改用CreateProcess

关于delphi - 通过 ShellExecute 的 Mysqldump 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com