[windows] .BAT 스크립트를 어떻게 디버깅 할 수 있습니까?

.bat 스크립트를 단계별로 진행하는 방법이 있습니까? 문제는 다른 많은 스크립트를 호출하는 빌드 스크립트가 있으며 호출 순서가 무엇인지 확인하여 정확히 어디로 가야하는지 알고 수정 사항을 추가해야합니다. .



답변

.bat 파일의 실행을 단계별로 진행하는 방법을 모르겠지만 디버깅을 사용 echo하고 pause도움을 줄 수 있습니다 .

ECHO
배치 파일의 메시지를 에코합니다. ECHO Hello World와 같은 실행시 화면에 Hello World가 인쇄됩니다. 그러나 배치 파일의 시작 부분에 @ECHO OFF가 없으면 “ECHO Hello World”및 “Hello World”도 표시됩니다. 마지막으로 빈 줄을 만들려면 ECHO를 입력하십시오. 끝에 마침표를 추가하면 빈 줄이 생성됩니다.

PAUSE
계속하려면 아무 키나 누르라는 메시지를 사용자에게 표시합니다.

출처 : 배치 파일 도움말

@ workmad3 : answer에는 echo명령 작업에 대한 더 많은 좋은 팁이 있습니다.

또 다른 유용한 리소스 … DDB : DOS 배치 파일 팁


답변

스크립트에 ‘echo off’문이 없는지 확인하고 각 스크립트를 호출 한 후 ‘echo on’을 호출하여 놓친 항목을 재설정하십시오.

그 이유는 에코가 켜져 있으면 명령 인터프리터가 각 명령을 실행하기 전에 (파라미터 처리 후) 출력하기 때문입니다. 프로덕션에서 사용하기에는 정말 좋지 않지만 출력이 잘못되었는지 확인할 수 있으므로 디버깅 목적으로 매우 유용합니다.

또한 호출 된 배치 스크립트 및 프로그램에 의해 설정된 ErrorLevels를 확인하고 있는지 확인하십시오. 이를 위해 .bat 파일에 사용되는 두 가지 방법이 있습니다. 프로그램을 호출 한 경우 오류 수준은 % ERRORLEVEL %에있는 반면 배치 파일에서 오류 수준은 ErrorLevel 변수에 반환되며 주변에 %가 필요하지 않습니다.


답변

비슷한 우려에 직면하여 사소한 Google 검색으로 다음 도구를 발견했습니다.

JPSoft의 ” Take Command “에는 배치 파일 IDE / 디버거가 포함되어 있습니다. 그들의 짧은 프리젠 테이션 비디오는 멋지게 보여줍니다.

몇 시간 동안 평가판을 사용하고 있습니다. 첫 번째 겸손한 의견은 다음과 같습니다.

  • 한쪽에서는 실제로 .bat 및 .cmd 스크립트를 디버깅 할 수 있으며 이제는 꽤 많은 경우에 도움이 될 수 있다고 확신합니다.
  • 다른 한편으로, 때때로 차단되고 나는 그것을 죽여야했다. 특히 아래 첨자를 디버깅 할 때 (항상 체계적으로는 아님) .. “콜 스택”이나 “스텝 아웃”버튼을 표시하지 않는다.

그것은 시도를 좋아합니다.


답변

‘실행 단계'(win32) 소프트웨어가 내가 찾던 작업을 정확히 수행하는 것을 발견했습니다.
http://www.steppingsoftware.com/

bat 파일을로드하고 중단 점을 배치하거나 출력 및 환경 변수를 확인하면서 단계별로 시작할 수 있습니다.

평가판은 50 줄만 통과 할 수 있습니다. 비슷한 기능을 가진 무료 대안이 있습니까?


답변

@ECHO OFF를 제거하고 모든 출력을 로그 파일로 리디렉션하는 배치 파일을 호출합니다.

c :> yourbatch.bat (선택적 매개 변수)> yourlogfile.txt 2> & 1

http://www.robvanderwoude.com/battech_debugging.php 에서 찾을 수 있습니다 .

효과가있다!! 2> & 1을 잊지 마세요 …

WIZ


답변

내가 생각할 수있는 유일한 방법은 echos와 pauses로 코드를 돌리는 것입니다 .


답변

결과를 파일로 다시 라우팅하려고 했습니까? whatever.bat> log.txt처럼

이 경우 다른 모든 스크립트가 >> log.txt와 같은 파일에 로깅되는지 확인해야합니다.

또한 배치 파일의 시작과 끝에 날짜 / T 및 시간 / T를 입력하면 해당 시점의 시간을 얻을 수 있으며 스크립트 실행 시간과 순서를 매핑 할 수 있습니다.