[컴] windows batch 가 중간에 끝나버리는 현상 해결방법

 

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\*

References

  1. Batch file stops running after the first command - Stack Overflow
  2. cmd - What does “&&” do in this batch file? - Stack Overflow
  3. Batch files - CALL

댓글 없음:

댓글 쓰기