배치 파일에 대한 기본적인 지식을 가지고 있으며 일반적으로 해결할 수 있지만 해결할 수없는 문제가 발생했습니다.두 번째 "call"문을 처리하기 전에 배치 파일 실행이 중지되는 이유는 무엇입니까?
배치 파일은 Windows 7 Ultimate 및 Windows 10 Professional 시스템에서 실행되며 대개 관련 데스크톱 아이콘을 클릭하기 만해도 일반적으로 스케줄러 프로그램에 의해 호출됩니다. 본질적으로, 배치 파일의 역할은 내 사례에서 내 보관 용 계정에있는 외부 텍스트 파일에 나열된 특정 파일 (TV 프로그램)을 다운로드하는 것입니다. 텍스트 파일 (TV.txt)의 각 항목에 대해 파일 이름을 지정 두 줄, 하나가 다른 목록의 ID :
name1
ID1
name2
ID2
name3
ID3
배치 파일을 연속적으로, 텍스트 파일에 나열된 항목을 통해 하나를 작동 파일은 "ID"에서 작동하고 두 번째는 "이름"에서 작동합니다.
은 "아이디"파일 (TV-pid.cmd)는 다음과 같이 구성
set $textFile="D:\Dropbox\Get_iPlayer\0-TVdl\tv.txt"
for /f "delims=" %%a in ('type %$textFile%') do get_iplayer --pid %%a
은 "이름"파일 (TV-nopid.cmd)는 다음과 같이 구성
set $textFile="D:\Dropbox\Get_iPlayer\0-TVdl\tv.txt"
for /f "delims=" %%a in ('type %$textFile%') do get_iplayer --get %%a
각 배치 파일은 자체적으로 잘 작동하지만 두 파일을 단일 배치 파일로 결합하려고하면 문제가 발생합니다.
나는 "결합"배치 파일 (tv.cmd)를 작성하는 경우 :
call tv-pid.cmd
call tv-nopid.cmd
최초의 "전화"를 실행하지만, 일괄 작업이 두 번째 파일을 호출하기 전에 종료된다. 배치 작업이 종료 된 후, I는
set $textFile="D:\Dropbox\Get_iPlayer\0-TVdl\tv.txt"
for /f "delims=" %%a in ('type %$textFile%') do get_iplayer --pid %%a
set $textFile="D:\Dropbox\Get_iPlayer\0-TVdl\tv.txt"
for /f "delims=" %%a in ('type %$textFile%') do get_iplayer --get %%a
동일한 발생 (명령 "전화"를 사용하지 않음) "결합"배치 파일을 생성 마찬가지로 경우
는 라인 (2)에 다운로드 활동을 실행한다.
개인적으로 "전화"명령에 기반한 솔루션을 선호하지만 마음에 들지 않습니다.
This : http://stackoverflow.com/questions/14731877/a-bat-file-call-or-not-to-call-that-is-the _all 배치 파일 처리가 중지됩니다 (제어가 반환되지 않음). 호출자에게) 호출 된 배치 파일에 치명적인 구문 오류가있는 경우 ._ 따라서 완전히 종료 될 수있는 이유가있는 것으로 보입니다. 그 포스트가 제안한 것처럼'cmd/c'를 사용하면 어떨까요? –
'get_iplayer'에 익숙하지 않아서'call get_iplayer'가 문제를 해결할 수 있다고 제안 하겠지만 좀 더 쉬운 응답을 게시 할 것입니다. – Magoo
고마워요, 닉 .McDermaid, 문제가 분류되었습니다! 그것은 지금 치료를 작동합니다! – user338034