batch programming / 중간에 끝 / end before all the commands are executed / aborting the execution of the calling batch file
windows batch 가 중간에 끝나버리는 현상 해결방법
npm run build
같은 명령어를 .bat 안에 넣어서 실행하면, npm run build
가 끝나고, batch 가 그냥 끝나버린다.
이것에 대한 해결책은 2가지가 있다.
call
아래처럼 call
을 이용하면 된다. call 에 대한 자세한 내용은 ref. 3 을 참고하자.
echo ============
echo build
echo ============
call npm run build
if /I "%ERRORLEVEL%" NEQ "0" (
echo build error
pause
goto exit
)
echo ============
echo zip dist folder
echo ============
set zip="c:\Program Files\7-Zip\7z.exe"
set yyyymmdd=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
set filename=html-%yyyymmdd%-%hhmmss%.zip
%zip% a -tzip -mx1 %filename% .\dist\*
if /I "%ERRORLEVEL%" NEQ "0" (
echo zip error
pause
goto exit
)
&&
사용하기
&&
은 앞의 명령어가 정상적으로 끝나면 그 다음 명령어를 실행해 준다. 자세한 내용은 ref. 2 참고하자.
그래서 아래처럼 &&
을 사용해주면, npm run build
가 끝난 후 계속해서 command 를 실행하게 된다.
set zip="c:\Program Files\7-Zip\7z.exe"
set yyyymmdd=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
set filename=html-%yyyymmdd%-%hhmmss%.zip
npm run build ^
&& %zip% a -tzip -mx1 %filename% .\dist\*
댓글 없음:
댓글 쓰기