我的 nsis 脚本中的以下行返回 7 :
ExecWait '"$mysqlfolder\bin\mysqldump" --user=$MySQLUser --password=$MysqlPassword --execute="tcm > D:\db_test.sql"' $2
我想知道它有什么问题。
您确定退出代码不是来自 mysqldump 吗?您可以通过运行Process Monitor来验证这一点。
在这种情况下,问题可能是 stdout 重定向 ( >
),这种类型的重定向是在 cmd.exe 中实现的,因此除非 --execute 调用 cmd.exe 它不会工作。
如果要捕获(“根”子进程的)输出,您有两种选择:
cmd.exe /C
(如果您需要支持 Win9x,请使用 ReadEnvStr "COMSPEC")