batch-file
일괄 파일 명령 줄 인수
수색…
배치 파일에 제공되는 명령 줄 인수
배치 파일 명령 줄 인수는 배치를 시작할 때 제출되는 매개 변수 값입니다. 공백이 있으면 따옴표로 묶어야합니다. 실행중인 배치 파일에서 인수는 다양한 용도, 즉 :labels
리디렉션, 변수 설정 또는 명령 실행에 사용됩니다.
인수는 %1, %2, ..., %9
사용하여 배치 파일에서 참조됩니다.
@echo off
setlocal EnableDelayedExpansion
if not "%1"=="" (
set "dir=%~1" & set "file=%~2"
type !dir!\!file! | find /n /i "True" >nul^
&& echo Success! || echo Failure
)
exit /b
C:\Users\UserName> test.bat "C:\Temp\Test Results" "Latest.log"
Success!
노트:
- 위의 예에서 인자 수정 자
%~1
을 사용하면 큰 따옴표가 제거됩니다. - 긴 문자열은
^
사용하여 여러 줄로 나뉘며 다음 줄의 문자 앞에 공백이 있습니다.
9 개 이상의 인수가있는 배치 파일
9 개 이상의 인수가 제공되면 shift [/n]
명령을 사용할 수 있습니다. 여기서 /n
은 n 번째 인수에서 시작하고 n은 0에서 8 사이를 의미합니다.
인수를 통해 루핑하기 :
:args
set /a "i+=1"
set arg!i!=%~1
call echo arg!i! = %%arg!i!%%
shift
goto :args
위의 예제에서 지연 확장 변수 i
는 변수 배열에 인수 값을 할당하는 데 사용됩니다. call
명령을 사용하면 루프 내에서 변수 값을 표시 할 수 있습니다.
계수 인수 :
for %%i in (%*) do (set /a ArgCount+=1)
echo %ArgCount%
변수를 n 번째 인수로 설정합니다.
set i=5
call set "path%i%=%%~i"
괄호 안의 인수 이동
다음 example.bat
가지며 인수 1
, 2
및 3
호출합니다.
@echo off
(
shift
shift
echo %1
)
끝괄 괄호 문맥에 도달하면 변수 확장이 변경되므로 출력은 다음과 같습니다.
1
인수에 액세스하려면 대괄호 안에 들어가는 것이 문제가 될 수 있으므로 다음 호출을 사용해야합니다.
@echo off
(
shift
shift
call echo %%1
)
이제 출력은 3
됩니다. 이 기술로 CALL
명령을 사용하면 (추가 가변 확장으로 이어짐) 인수 액세스도 매개 변수화 될 수 있습니다.
@echo off
set argument=1
shift
shift
call echo %%%argument%
지연된 확장과 함께 :
@echo off
setlocal enableDelayedExpansion
set argument=1
shift
shift
call echo %%!argument!
출력은
삼
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow