0

私の nsis スクリプトの次の行は 7 を返しています:

ExecWait '"$mysqlfolder\bin\mysqldump" --user=$MySQLUser --password=$MysqlPassword --execute="tcm > D:\db_test.sql"' $2

何が悪いのか知りたいです。

4

1 に答える 1

1

終了コードは mysqldump からのものではありませんか? これは、 Process Monitorを実行することで確認できます。

この場合、問題は stdout リダイレクト ( >) である可能性があります。このタイプのリダイレクトは cmd.exe に実装されているため、 --execute が cmd.exe を呼び出さない限り、動作しません。

(「ルート」子プロセスの) 出力をキャプチャする場合は、次の 2 つのオプションがあります。

  • コマンド ラインにプレフィックスを付けますcmd.exe /C(Win9x をサポートする必要がある場合は、ReadEnvStr "COMSPEC" を使用します)。
  • 出力をキャプチャするexec プラグインの 1 つを使用します。
于 2013-05-30T14:36:08.493 に答える