배치 스크립트-변수
배치 파일에는 두 가지 유형의 변수가 있습니다. 하나는 배치 파일이 호출 될 때 전달 될 수있는 매개 변수 용이고 다른 하나는 set 명령을 통해 수행됩니다.
명령 줄 인수
배치 스크립트는 명령 줄 인수 개념을 지원합니다. 여기서 인수는 호출 될 때 배치 파일로 전달 될 수 있습니다. 인수는 % 1, % 2, % 3 등의 변수를 통해 배치 파일에서 호출 할 수 있습니다.
다음 예제는 3 개의 명령 줄 인수를 받아들이고이를 명령 줄 화면에 에코하는 배치 파일을 보여줍니다.
@echo off
echo %1
echo %2
echo %3
위의 배치 스크립트가 test.bat라는 파일에 저장되고 배치를 다음과 같이 실행하면
Test.bat 1 2 3
다음은 배치 파일이 실행될 때 명령 프롬프트에서 어떻게 보이는지에 대한 스크린 샷입니다.
위의 명령은 다음 출력을 생성합니다.
1
2
3
배치를 다음과 같이 실행하려면
Example 1 2 3 4
출력은 여전히 위와 동일하게 유지됩니다. 그러나 네 번째 매개 변수는 무시됩니다.
설정 명령
변수를 초기화 할 수있는 다른 방법은 'set'명령을 사용하는 것입니다. 다음은 set 명령의 구문입니다.
통사론
set /A variable-name=value
어디,
variable-name 설정하려는 변수의 이름입니다.
value 변수에 대해 설정해야하는 값입니다.
/A – 이 스위치는 값이 본질적으로 숫자 여야하는 경우에 사용됩니다.
다음 예제는 set 명령을 사용할 수있는 간단한 방법을 보여줍니다.
예
@echo off
set message=Hello World
echo %message%
위의 코드 스 니펫에서 message라는 변수가 정의되고 "Hello World"값으로 설정됩니다.
변수 값을 표시하려면 변수를 % 기호로 묶어야합니다.
산출
위의 명령은 다음 출력을 생성합니다.
Hello World
숫자 값 작업
배치 스크립트에서 숫자 값을 보유하는 변수를 정의 할 수도 있습니다. / A 스위치를 사용하여 수행 할 수 있습니다.
다음 코드는 / A 스위치를 사용하여 숫자 값을 설정할 수있는 간단한 방법을 보여줍니다.
@echo off
SET /A a = 5
SET /A b = 10
SET /A c = %a% + %b%
echo %c%
먼저 2 개의 변수 a와 b의 값을 각각 5와 10으로 설정합니다.
이러한 값을 추가하고 변수 c에 저장합니다.
마지막으로 변수 c의 값을 표시합니다.
위 프로그램의 출력은 15입니다.
모든 산술 연산자는 배치 파일에서 작동합니다. 다음 예제는 배치 파일에서 사용할 수있는 산술 연산자를 보여줍니다.
@echo off
SET /A a = 5
SET /A b = 10
SET /A c = %a% + %b%
echo %c%
SET /A c = %a% - %b%
echo %c%
SET /A c = %b% / %a%
echo %c%
SET /A c = %b% * %a%
echo %c%
위의 명령은 다음 출력을 생성합니다.
15
-5
2
50
로컬 변수와 글로벌 변수
모든 프로그래밍 언어에는 변수를 일종의 범위, 즉 액세스 할 수있는 코드 섹션으로 표시하는 옵션이 있습니다. 일반적으로 전역 범위를 갖는 변수는 프로그램에서 어디서나 액세스 할 수있는 반면 로컬 범위 변수에는 액세스 할 수있는 정의 된 경계가 있습니다.
DOS 스크립팅에는 로컬 및 전역 범위 변수에 대한 정의도 있습니다. 기본적으로 변수는 전체 명령 프롬프트 세션에 전역 적입니다. SETLOCAL 명령을 호출하여 스크립트 범위에 대한 로컬 변수를 만듭니다. SETLOCAL을 호출 한 후 ENDLOCAL을 호출하거나 EXIT를 호출하거나 실행이 스크립트의 EOF (파일 끝)에 도달하면 모든 변수 할당이 되돌아갑니다. 다음 예제는 스크립트에 로컬 및 글로벌 변수가 설정된 경우의 차이점을 보여줍니다.
예
@echo off
set globalvar = 5
SETLOCAL
set var = 13145
set /A var = %var% + 5
echo %var%
echo %globalvar%
ENDLOCAL
위의 프로그램에 대해 주목해야 할 몇 가지 중요한 사항입니다.
'globalvar'는 전역 범위로 정의되며 전체 스크립트에서 사용할 수 있습니다.
'var'변수는 'SETLOCAL'과 'ENDLOCAL'블록으로 묶여 있기 때문에 로컬 범위에서 정의됩니다. 따라서이 변수는 'ENDLOCAL'문이 실행되는 즉시 삭제됩니다.
산출
위의 명령은 다음 출력을 생성합니다.
13150
5
echo % var % 명령은 ENDLOCAL 문 다음에 'var'변수가 더 이상 존재하지 않기 때문에 아무 것도 생성하지 않습니다.
환경 변수 작업
배치 파일에서 사용할 변수가있는 경우 항상 환경 변수를 사용하는 것이 좋습니다. 환경 변수가 정의되면 % 기호를 통해 액세스 할 수 있습니다. 다음 예제는 시스템에 정의 된 JAVA_HOME을 보는 방법을 보여줍니다. JAVA_HOME 변수는 일반적으로 다양한 응용 프로그램에서 사용되는 주요 구성 요소입니다.
@echo off
echo %JAVA_HOME%
출력에는 시스템마다 종속되는 JAVA_HOME 디렉토리가 표시됩니다. 다음은 출력의 예입니다.
C:\Atlassian\Bitbucket\4.0.1\jre