簡體   English   中英

從 Inno Setup 執行帶有輸出重定向的程序

[英]Execute program with output redirection from Inno Setup

我正在嘗試在卸載時進行數據庫備份,但由於某種原因,帶有重定向的程序在 Inno Setup 中總是失敗。 這是我所擁有的:

[Run]
Filename: "{#DB_PATH}\mysqldump.exe"; \
  Parameters: "-c --compact {#DB_NAME} > {#STORAGE_PATH}\db.sql";  Flags: runhidden;
Filename: "xcopy";                     \
  Parameters: "{#STORAGE_PATH} {userdesktop}\Backup\ /E/H"; Flags: runhidden;
Filename: "{#DB_PATH}\mysqladmin.exe"; \
  Parameters: "shutdown"; Flags: runhidden;

最后兩個命令正常工作。 但由於某種原因,第一個永遠不會奏效。 我已經測試了該命令,它可以正常工作。

我不確定我是否做錯了什么,所以感謝任何幫助。

這似乎是以下情況的變體:
Inno Setup 中的輸出重定向如何工作?

有一點不同,您使用的是[Run]部分而不是 Pascal Script 代碼。

輸出重定向語法是命令提示符的一項功能,而不是核心 Windows API。 因此,如果要重定向輸出,則需要通過{cmd} /c actual-command-line > output-file調用命令。

所以應該是:

Filename: "{cmd}"; \
  Parameters: "/C {#DB_PATH}\mysqldump.exe -c --compact {#DB_NAME} > {#STORAGE_PATH}\db.sql"; \
  Flags: runhidden;

但是您也應該引用所有路徑(並且由於cmd.exe使用的語法晦澀,您還需要引用整個命令):

Filename: "{cmd}"; \
  Parameters: "/C """"{#DB_PATH}\mysqldump.exe"" -c --compact {#DB_NAME} > ""{#STORAGE_PATH}\db.sql"""""; \
  Flags: runhidden;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM