2014-09-26 7 views
0

나는 박쥐 파일을 처음 사용합니다. 이 같은 2 개 인자로 함수를 호출하려고 :박쥐 파일 인수 충돌?

문제가이 박쥐 파일이 원격 시스템에있는, 그리고 내가 내 로컬 컴퓨터에서 전화 할 때, 나는 실제로 4 개 인수를 전달되었는지 그러나
How I run the bat in my local machine 
c:\remote.bat pass1 pass2 pass3 pass4 
============================================================================= 
inside remote.bat 

call:ECHOPATH %ip% log 

:ECHOPATH 
echo .\%1Server_Report\%2 

너무. 이제 % 1과 % 2는 내가 함수가 아니라 박쥐 파일을 호출 할 때 전달한 것으로 인식됩니다. 제 목표는 bat 파일을 실행할 때 다른 인수를 전달할 수 있고 해당 bat 파일 내부에서 함수를 호출 할 때 다른 인수를 전달할 수 있다는 것입니다. 전화 좀 도와주세요. 고맙습니다.

답변

0

배치 파일이 코딩되었으므로 문제는 첫 번째 호출 후 실행이 서브 루틴에 들어가는 것을 방해하지 않는 것입니다. 즉, 함수가 호출되고 두 개의 인수가 전달되고 사용되며 서브 로틴이 끝나고 호출이 끝난 후 실행이 계속되고 레이블이 다시 실행 된 후에 코드가 호출되지 않고 이번에는 %1, %2이 참조가됩니다. 배치 파일 인수

+0

답변 해 주셔서 감사합니다. 죄송합니다. 박쥐 파일의 전체 실행 과정에 대해 명확하지 않습니다. 첫 번째 호출 후에 실행이 서브 루틴에 들어가는 것을 막을 수 있습니까? 레이블을 호출하기 전에 null로 설정해야합니까? 그렇다면 % 1을 (를) null로 설정하는 구문은 무엇입니까? –

+0

호출하기 전에 "% 1 ="집합을 "% 2 ="집합으로 null로 설정하면 이제는 원하는대로 작동합니다. 감사 번호 –

+0

@LuisLiu, 실행을 서브 루틴에 넣지 못하도록하는 가장 쉬운 방법은 ': echopath'앞에 또는 exit : b 또는 또는 goto : eof를 넣는 것입니다. 실행 (대개 두 위치가 동일 함) –