2011-02-23 6 views
2

제 문제는 인수를 bat 파일에 전달하는 것과 관련이 있습니다. 첫 번째 인수는 박쥐에게 올바르게 전달되지만 인수가 전달 된 두 번째 인수는 emtpy입니다.박쥐 내에서 여러 개의 bat 파일을 실행하고 인수를 전달합니다.

예 :

bat1.bat의 처신의 첫 번째 호출이 비어 있으므로 후
set comport = com4 
call bat1.bat %comport%  ->comport is com4 
if errorlevel 1 goto end 
call bat2.bat %comport%  ->comport is empty 

. bat1.bat 호출 후 "main"박쥐 레벨에서 호출 인수를 메모리에 유지하려면 어떻게해야합니까?

+0

을 복원해야 할 것이다 WinNT4 +가 아닌 DOS 또는 Win9x의 작동 @ 토마스 : 나는 '% comport %'가 처음에 'com4'로 평가되는 것을 볼 수 없다. 그것은'set' 명령에 의해 초기화 될 수 없습니다.'='는 공백으로 둘러싸여 있습니다. –

+0

네, 맞습니다. 나는 그것이 의사 코드 일 뿐이라는 것을 분명히해야만했다. 더 일반적인 솔루션입니다. 첫 번째 박쥐를 호출 한 후 comport가 비어 있습니다. – Tomas

+0

@Tomas : 그리고'bat1.bat'가 변수를 재설정 할 수 없다는 것을 알고 계실지 모르겠습니다. –

답변

2
@echo off 
set comport=com4 
setlocal&(call bat1.bat %comport%)&endlocal 
if errorlevel 1 goto end 
call bat2.bat %comport% 
:end 

SETLOCAL은 당신이 사람들을 지원해야하는 경우가 bat1.bat를 호출하기 전에 다른 변수에 %의 처신에 %를 저장 한 다음 값

관련 문제