2012-03-13 2 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}`을 삭제할
관련 문제