2012-03-13 81 views
0

我有一個與NSIS相關的問題。 我有一個由NSIS創建的安裝程序(「c:/ Installer/Installer.exe」文件夾)。 當我運行安裝程序時,它會在安裝文件夾中創建一個日誌文件(「c:/ Installer/installlog.txt」)。成功運行Installer.exe後,我只想將installlog.txt從「c:/ Installer」中刪除。無法使用NSIS刪除文件

我有以下功能

Function .onInstSuccess 
    call cleanUp 
    ifSilent 0 +2 
      ${LogText} "INFO :: Application has been installed" 
      CopyFiles "$EXEDIR\${INSTALL_LOG}" "$Dir\LogFiles\" 
      IfFileExists "$Dir\LogFiles\{INSTALL_LOG}" DoNothing CopyAgain 
      CopyAgain: 
       CopyFiles "$DIR\${INSTALL_LOG}" "$Dir\LogFiles\" 
       Delete "$DIR\${INSTALL_LOG}" 
       goto DoNothing 
      DoNothing:   
      SetOutPath $EXEDIR  
      Delete "$EXEDIR\*.log" ;....................**but the file does not get deleted** 
FunctionEnd 

可以有一個人請告訴我怎樣才能使這項工作。 我需要儘快解決這個問題,在此非常感謝

+0

要刪除'$ DIR \ $ {INSTALL_LOG}'?當文件應該被刪除時,你在詳細日誌中有什麼,而是一個錯誤信息? – Seki 2012-03-13 15:06:33

+0

如果文件正在被使用,它不能被刪除,您應該關閉它或使用/ REBOOTOK指示刪除指令在重新啓動時刪除它 – zenpoy 2012-03-13 16:33:55

回答

1

我假設您使用的是these日誌記錄宏。在最後一次致電${LogText}後,您應該致電${LogSetOff},以便文件句柄關閉後,您應該可以刪除該文件。

此外,使用Delete "$EXEDIR\*.log"是不是一個好主意,你已經知道文件名...