배치 파일의 명령 연결을 위한 여러 줄 && 결합자 연산자

배치 파일의 명령 연결을 위한 여러 줄 && 결합자 연산자

알겠어요이 연산자는 여러 명령을 한 줄로 연결/결합하기 위해 Windows(Linux일 수도 있음)에서 사용됩니다. 이전에 성공적으로 완료(종료 코드 0)된 경우 명령이 차례로 실행됩니다.

그러나 한 줄에 하나씩 명령을 차례로 지정하는 배치 파일에서 사용할 수 있는지 이해가 되지 않습니다. 이 경우 어떻게 동일한 효과를 얻을 수 있습니까?cmd1 && cmd2 && cmd3여러 줄로 나누는 방법? 어떻게 종료하나요?

cmd1
cmd2
cmd3

첫 번째 명령이 실패하자마자?

나중에 이런 질문에 대한 답을 스스로 찾을 수 있도록 운영자 이름도 알고 싶습니다.

답변1

cmd1 && cmd2 && cmd3

다음과 같이 여러 줄로 작성할 수 있습니다.

cmd1
if not errorlevel 1 cmd2
if not errorlevel 1 cmd3

각 명령 실행은 이전 명령의 결과에 따라 달라집니다.

답변2

cmd1 && cmd2 && cmd3GNU/Linux에서는 다음과 같이 스크립트 파일에서 명령을 여러 줄로 나눌 수 있습니다 (예: 가독성을 위해).

cmd1 &&
cmd2 &&
cmd3

답변3

차이점은 다음과 같습니다.

cmd1
cmd2
cmd3

각 명령을 개별적으로 실행하고 작업이 끝나기 전에 Ctrl+를 누르면 일괄 작업을 종료할 수 있습니다 .c

반면

cmd1 && cmd2 && cmd3

명령을 차례로 실행하지만 스크립트를 보지 않고 한 번에 실행합니다.

추가 예를 들어,

첫 번째 예를 들어 보겠습니다. cmd1이 실행되는 동안 스크립트를 편집하고 cmd2를 cmd3으로 변경하면 cmd1이 완료되면 cmd3이 로드됩니다.

Linux에서는 ifdown eth0SSH 세션이 손실되므로 대신 ifdown eth0 && ifup eth0명령을 연결해야 합니다.

실패와 관련하여 조치를 취하고 싶다면 반환 코드 및 오류 수준과 함께 if 문과 스위치를 살펴봐야 합니다.링키.

답변4

배치 파일의 경우 각 조건부 연산 &&(또는 ||) 뒤에 ^ 구분 기호를 추가해야 합니다. 예를 들어:

echo 1 && ^
echo 2 && ^
copy >null && ^
echo 4

관련 정보