2016-08-26 2 views
0

이것은 Windows의 실행 파일에서 반환되는 ERRORLEVEL에 대해 논의하는 일반적인 주제입니다. 아파치 HTTP 서버를 윈도우 서비스로 설치하기위한 스크립트를 작성 중이다. 설정 파일에 오류가있을 때은 일괄 처리 스크립트에서 오류 처리를 위해 신뢰할 수있는 실행 파일에 의해 반환되는 ERRORLEVEL입니다.

httpd -k install 

httpd 실행 실행 파일은

  • ERRORLEVEL 1을 반환합니다.
  • ERRORLEVEL 이미 서비스가 설치된 경우 2입니다.
  • 성공을 위해 ERRORLEVEL 0

일반적으로 실행 파일에서 반환되는 ERRORLEVEL에 따라 오류를 처리해도 괜찮습니까? 배치 스크립트에서 실행하는 명령의 리턴 코드를 처리하기 위해 다른 방법을 사용해야합니까?

+0

관련 게시물 : [내부 cmd.exe 명령에 의해 설정된 ERRORLEVEL 값은 무엇입니까?] (http://stackoverflow.com/q/34987885) 및 [어떤 cmd.exe 내부 명령은 성공시 ERRORLEVEL을 0으로 지 웁니 까?] (http://stackoverflow.com/q/34968009) – aschipfl

답변

1

모든 프로그래머는 exitcodes (%errorlevel%에서 반환)를 자신의 돌풍으로 자유롭게 처리 할 수 ​​있습니다. 0은 "성공"을 의미하는 반면, 0이 아닌 값은 "어떤 종류의 오류"를 의미한다는 일반적인 동의가 있습니다. 그러나 당신은 그것에 의지 할 수 없습니다.

좋은 예는 ping입니다. 자신의 네트워크에 존재하지 않는 IP에 핑 (ping)하면
Answer from <localhost>: destination unreachable을 반환합니다.

일부 내부 명령은 오류 수준을 만지지 마십시오 "을 성공할 그래서, 음, 대답이 입니다"당신이 생각하는 것
, 즉, 실패이고 따라서 비 제로 오류 수준을 기대하지만, 프로그래머가 생각 obvioulsy 일부는 항상 0을 반환하고, 일부는 항상 1 (robocopy, 감사합니다 aschipfl)을 반환합니다.
실행 파일 do은 errorlevel (감사합니다 Aacini)을 설정했지만 은 프로그래머에 따라 달라집니다.은 프로그래머에 따라 다릅니다. 일부는 항상 0으로, 대부분은 실제로 사용 가능한 오류 수준입니다.

당신에게 말해줘서 미안 해요 : %errorlevel%에 대한 일반적인 규칙에 의존 할 수는 없습니다. 당신은 각 단일 명령/실행 파일 (문서 (만약 당신이 아주 운이 좋다면) 또는 시도하여 체크 아웃)

+0

... 그냥 반대 예 :'robocopy'는 성공의 경우에도 0이 아닌'ErrorLevel'을 반환합니다 ... – aschipfl

+0

작은 메모 :'.exe' 파일에 포함 된 _all_ 실행 파일은 errorlevel을 수정합니다. 단지 내부 명령 만 오류 레벨을 유지할 수 있습니다. – Aacini

관련 문제