IF-ERRORLEVEL 사용법

오늘 원 격 으로 한 고객 이 서버 가 비정 기적 으로 네트워크 를 끊 어서 클 라 이언 트 가 서버 에 연결 되 지 못 하 는 것 을 발 견 했 습 니 다.그러나 서 비 스 를 재 개 한 후에 다시 정상 으로 돌 아 왔 습 니 다.초보적인 판단 은 특정한 시스템 서비스 와 winpacp 가 충돌 하기 때 문 일 수 있 습 니 다.사용자 에 게 운영 체제 복 구 를 건의 합 니 다.그 는 저녁 에 다시 작업 을 시작 하려 고 합 니 다.오늘 은 계속 ping 을 실행 할 수 밖 에 없습니다.timed out 을 발견 하면 수 동 으로 서 비 스 를 다시 시작 합 니 다.나 는 if 가 프로그램의 반환 값 을 판단 할 수 있다 는 것 을 기억 하고 이 스 크 립 트 를 써 주 었 다.

@echo off
: p
ping 61.152.XX.XX
IF ERRORLEVEL 1 goto aa
IF ERRORLEVEL 0 goto bb
:aa
echo ...
net stop MSSQLSERVER
net start MSSQLSERVER
goto p
:bb
echo ping 。。。
goto p
이 명령 의 역할 은 ping 61.152.XX.XX 라 는 IP 입 니 다.ping 이 통 하지 않 으 면 mssql 서 비 스 를 다시 시작 한 다음 에 ping 을 계속 하 는 것 입 니 다.ping 이 통 할 수 있다 면 ping 을 계속 하 는 것 입 니까?
우 리 는 if 가 명령 행 아래 의 조건 판단 문 이라는 것 을 알 고 있 습 니 다.ERRORLEVEL 은 그의 매개 변수 입 니 다.번역 하면'오류 반환 코드'라 는 뜻 입 니 다.그 역할 은 앞의 명령 의 오류 반환 값 을 판단 한 다음 에 정 의 된 문자 값 과 비교 하여 어떤 동작 을 할 지 결정 하 는 것 입 니 다.형식 은 다음 과 같 습 니 다:
if ERRORLEVEL nubmer commend 예:if ERRORLEVEL 1 echo 반환 값 은 1
그러면 여러분 이 물 어 보 셔 야 합 니 다.제 가 어떻게 이전 명령 의 반환 값 을 얻 었 습 니까?방법 은 매우 간단 합 니 다.ping 을 가지 고 말하자면,우리 가 먼저 ping 127.0.0.1 을 실행 한 결 과 는 Reply from 127.0.0.1:bytes=32 time<1ms TTL=128 일 때,echo%errorlevel%를 입력 하면 반환 값 이 0 인 것 을 볼 수 있 습 니 다.그리고 우 리 는 ping 에 존재 하지 않 는 ip,예 를 들 어 192.192.192.192.192ping 명령 에 Request timed out 를 표시 합 니 다.ok,우 리 는 echo%errorlevel%로 반환 값 이 얼마 인지 확인 하고 있 습 니 다.지금 은 1 이 되 었 다.
너 도 이 방법 으로 다른 명령 의 반환 값 을 조회 할 수 있다.예 를 들 어 copy,dir 등 이다.물론 if ERRORLEVEL 의 수치 비교 방법 은 같 지 않다.마이크로소프트 의 도움 에서 우 리 는 볼 수 있다.
IF %ERRORLEVEL% LEQ 1 goto okay
여기 서 LEQ 는'작 거나 같 음'을 나타 내 는데 모든 비교 매개 변 수 는 다음 과 같다.EQU-NEQ 와 같 음-LSS 와 같 지 않 음-LEQ 보다 작 거나 같 음-GTR 보다 작 거나 같 음-GEQ 보다 크 거나 같 음
잘못 이 있 으 면 지적 해 주 셔 서 감사합니다.IF-ERRORLEVEL 은 TEST 4.BAT 를 만 들 었 습 니 다.내용 은 다음 과 같 습 니 다:@ECHO OFF  XCOPY C:\AUTOEXEC.BAT D:\ IF ERRORLEVEL 1 ECHO 파일 복사 실패  IF ERRORLEVEL 0 ECHO 파일 복사 성공  그리고 파일 실행:C:\<TEST 4 는 파일 복사 에 성공 하면 화면 에'파일 복사 성공'이 표시 되 고 그렇지 않 으 면'파일 복사 실패'가 표 시 됩 니 다.  IF ERRORLEVEL 이전 DOS 명령 의 반환 값 을 테스트 하 는 데 사 용 됩 니 다.이전 명령 의 반환 값 일 뿐 이 며,반환 값 은 큰 것 에서 작은 순서 로 판단 해 야 합 니 다.따라서 다음 일괄 처리 파일 이 잘못 되 었 습 니 다:@ECHO OFF  XCOPY C:\AUTOEXEC.BAT D:\  IF ERRORLEVEL 0 ECHO 파일 복사 성공  IF ERRORLEVEL 1 ECHO 복사 파일 을 찾 을 수 없 음  IF ERRORLEVEL 2 ECHO 사용 자 는 ctrl-c 를 통 해 복사 작업 을 중단 합 니 다.  IF ERRORLEVEL 3 ECHO 파일 복사 작업 을 막 기 위해 미리 설정 오류  IF ERRORLEVEL 4 ECHO 복사 중 디스크 오류  복사 가 성공 하 든 안 하 든 뒤의:  복사 파일 을 찾 을 수 없 음  사용 자 는 ctrl-c 를 통 해 복사 작업 을 중단 합 니 다.  파일 복사 작업 을 막 기 위해 미리 설정 오류  복사 과정 에서 디스크 오 류 를 모두 표시 합 니 다.  다음은 몇 가지 상용 명령 의 반환 값 과 그 대표 적 인 의미 입 니 다.  backup  0 백업 성공  1 백업 파일 을 찾 을 수 없 음  2 파일 공유 충돌 백업 완료 저지  3 사용자 용 ctrl-c 백업 중지  4 치 명 적 인 오류 로 백업 작업 이 중단 되 었 습 니 다.  diskcomp  0 판 이 비교적 같다  1 판이 비교적 다르다  2 사용 자 는 ctrl-c 를 통 해 비교 작업 을 중단 합 니 다.  3 치 명 적 인 오류 로 비교 작업 이 중단 되 었 습 니 다.  4 프 리 셋 오류 중지 비교  diskcopy  0 디스크 복사 작업 성공  1 비치 명 적 읽 기/쓰기 오류  2 사용 자 는 ctrl-c 를 통 해 복사 작업 을 끝 냅 니 다.  3 치 명 적 인 처리 오류 로 디스크 복사 가 중단 되 었 습 니 다.  4 프 리 셋 오류 가 복사 작업 을 막 습 니 다.  format  0 포맷 성공  3 사용 자 는 ctrl-c 를 통 해 포맷 처 리 를 중단 합 니 다.  4 치 명 적 인 처리 오류 로 포맷 이 중단 되 었 습 니 다.  5 힌트 with format(y/n)?”다음 사용자 입력 n 종료  xcopy  0 파일 복사 성공  1 복사 파일 을 찾 을 수 없 음  2 사용 자 는 ctrl-c 를 통 해 복사 작업 을 중단 합 니 다.  4 파일 복사 작업 을 막 기 위해 미리 설정 오류  5 복사 중 디스크 오류

좋은 웹페이지 즐겨찾기