NSIS 설치 프로그램 내에서 실행해야하는 배치 파일이 있습니다. 모든 파일을 압축 해제 한 후에 실행해야합니다 (분명히 가정합니다. 그렇지 않으면 배치 파일이 아직 존재하지 않을 것입니다).NSIS 설치 프로그램에서 배치 파일 실행
끝 페이지를 실행하기 위해 MUI_PAGE_CUSTOMFUNCTION_PRE를 사용하려고했지만 스크립트의 해당 부분에 도달하면 바로 건너 뛰었습니다. 아래는 어떻게 호출하는 것입니다.
;;Finish Page
!define MUI_PAGE_CUSTOMFUNCTION_PRE Done
!insertmacro MUI_PAGE_FINISH
Function Done
ExecWait '"$INSTDIR\BatchFile" "$INSTDIR" "$DATA_FOLDER"'
FunctionEnd
미리 도움을 주셔서 감사합니다.
UPDATE
지금 사용하여 시도 한 다음
ExpandEnvStrings $0 %COMSPEC%
ExecWait '"$0" /C "$INSTDIR\batch.bat" "$INSTDIR" "$DATA_FOLDER"'
이 작동하지 않았다, 그래서 cmd를 프롬프트가 말한 알기 위해/C을했다 (그것을 갑자기 나타나지만 즉시 종료됩니다.) cmd.exe를 실행하는 것처럼 보이지만 그게 나머지 실행을 완료하지는 않습니다.
업데이트 # 2
작동하도록 점점 나를 이끄는 핵심 지식을 여기에서 찾을 수 있습니다 : 동의하지 않는 .bat 파일 어떤 이유를 들어
Windows batch files: .bat vs .cmd?
ExecWait. 결국
는 :ExecWait '"$INSTDIR\BatchFile.cmd" "$INSTDIR" "$DATA_FOLDER"'
는 잘했다. 여기
SetOutPath $INSTDIR\${APPLICATION_DIR}
ExpandEnvStrings $0 %COMSPEC%
nsExec::ExecToStack '"C:\path-tobatch-file\commands.bat"'
는 NSIS 위키
http://nsis.sourceforge.net/Docs/nsExec/nsExec.txt
나는 .bat fi를 실행할 수있었습니다. le, cmd 파일에 대해 위에서 게시 한 것처럼. ExecWait 대신 nsExec :: Exec을 사용하여 명령 창이 표시되지 않도록 할 수도 있습니다. – Ben