배치 스크립트-변수

배치 파일에는 두 가지 유형의 변수가 있습니다. 하나는 배치 파일이 호출 될 때 전달 될 수있는 매개 변수 용이고 다른 하나는 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