私の 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 を呼び出さない限り、動作しません。
(「ルート」子プロセスの) 出力をキャプチャする場合は、次の 2 つのオプションがあります。
cmd.exe /C
(Win9x をサポートする必要がある場合は、ReadEnvStr "COMSPEC" を使用します)。