![배치 파일의 명령 연결을 위한 여러 줄 && 결합자 연산자](https://rvso.com/image/1444055/%EB%B0%B0%EC%B9%98%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%AA%85%EB%A0%B9%20%EC%97%B0%EA%B2%B0%EC%9D%84%20%EC%9C%84%ED%95%9C%20%EC%97%AC%EB%9F%AC%20%EC%A4%84%20%26%26%20%EA%B2%B0%ED%95%A9%EC%9E%90%20%EC%97%B0%EC%82%B0%EC%9E%90.png)
알겠어요이 연산자는 여러 명령을 한 줄로 연결/결합하기 위해 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 && cmd3
GNU/Linux에서는 다음과 같이 스크립트 파일에서 명령을 여러 줄로 나눌 수 있습니다 (예: 가독성을 위해).
cmd1 &&
cmd2 &&
cmd3
답변3
차이점은 다음과 같습니다.
cmd1
cmd2
cmd3
각 명령을 개별적으로 실행하고 작업이 끝나기 전에 Ctrl+를 누르면 일괄 작업을 종료할 수 있습니다 .c
반면
cmd1 && cmd2 && cmd3
명령을 차례로 실행하지만 스크립트를 보지 않고 한 번에 실행합니다.
추가 예를 들어,
첫 번째 예를 들어 보겠습니다. cmd1이 실행되는 동안 스크립트를 편집하고 cmd2를 cmd3으로 변경하면 cmd1이 완료되면 cmd3이 로드됩니다.
Linux에서는 ifdown eth0
SSH 세션이 손실되므로 대신 ifdown eth0 && ifup eth0
명령을 연결해야 합니다.
실패와 관련하여 조치를 취하고 싶다면 반환 코드 및 오류 수준과 함께 if 문과 스위치를 살펴봐야 합니다.링키.
답변4
배치 파일의 경우 각 조건부 연산 &&(또는 ||) 뒤에 ^ 구분 기호를 추가해야 합니다. 예를 들어:
echo 1 && ^
echo 2 && ^
copy >null && ^
echo 4