2012-03-13 15 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

...あなたはすでにファイル名を知って、良いアイデアではないでしょうか?ファイルを削除する必要がある場合、エラーメッセージの詳細ログには何がありますか? – Seki

+0

ファイルが使用されている場合は削除することはできませんが、ファイルを閉じるか再起動時に削除指示を示すために/ REBOOTOKを使用する必要があります – zenpoy

答えて

1

私はtheseロギングマクロを使用していると仮定します。最後に${LogText}を呼び出した後に${LogSetOff}に電話をかけて、ファイルハンドルを閉じてから、ファイルを削除する必要があります。

また、Delete "$EXEDIR\*.log"を使用すると、あなたは `$ DIR \ $ {INSTALL_LOGを}`削除する