
Windows에 세 가지 작업을 수행하는 .bat 파일이 있습니다.
cmd1 arg1 arg2
cmd2 arg3
cmd3 arg4 arg5 arg6
때로는 cmd1이 실패할 수 있지만 괜찮습니다. 계속해서 cmd2와 cmd3을 실행하고 싶습니다. 하지만 내 방망이는 cmd1에서 멈췄습니다. 이것을 어떻게 피할 수 있습니까?
업데이트명확하게 말하면 이는 다른 .bat 파일이 아니라 exe 명령입니다. 이를 달성하기 위해 .bat 파일 트리를 구축할 필요가 없기를 바랍니다.
답변1
또 다른 옵션은 amperstand( &
) 를 사용하는 것입니다.
cmd1 & cmd2 & cmd3
double을 사용하는 경우 이전 명령이 성공적으로 완료된 경우에만 계속됩니다( %ERRORLEVEL%==0
).
cmd1 && cmd2 && cmd3
이중 파이프( ||
)를 사용하는 경우 이전 명령이 오류 코드( %ERRORLEVEL% NEQ 0
) 와 함께 완료되는 경우에만 다음 명령을 실행합니다.
cmd1 || cmd2 || cmd3
답변2
이것은 나에게 효과적이었습니다.
cmd.exe /c cmd1 arg1
cmd2
...
이는 cmd.exe
Windows 명령 해석기의 새 인스턴스에서 명령을 실행하는 데 사용되므로 실패한 명령으로 인해 배치 스크립트가 중단되지 않습니다. 플래그 /c
는 명령 실행이 완료되자마자 인터프리터에게 종료하도록 지시합니다.
cmd2
첫 번째 명령이 실패하더라도 실행됩니다. cmd /?
자세한 내용은 Windows 명령 프롬프트를 참조하세요 .
답변3
cmd가 다른 .bat 파일이라고 가정하면 다음과 같이 명령이 스택됩니다.
call cmd1
call cmd2
call cmd3
답변4
추가하려면캐나다 루크의 답변, 스크립트를 좀 더 체계적으로 유지하려면 ^
다음과 같이 스크립트의 새 줄에 명령 체인을 계속 사용할 수 있습니다.
scoop install windows-terminal & ^
scoop install joplin & ^
scoop install neovim & ^
scoop install autohotkey & ^
... & ^
scoop update -a
못생긴 대신
scoop install windows-terminal & scoop install joplin & scoop install neovim & ...