배치 스크립트 - 배열: 초보자 가이드

안녕하세요, 미래의 프로그래머 여러분! 오늘 우리는 배치 스크립팅의 흥미로운 세계인 배열에 대해 들어보겠습니다. 코드를 한 줄도 작성해본 적이 없으신 분들도 걱정하지 마세요 - 이 여정에서 여러분의 친절한 안내자가 되겠습니다. 이 튜토리얼이 끝나면, 프로처럼 배열을 조작할 수 있을 것입니다!

Batch Script - Arrays

배열이란?

들어가기 전에 배열이 무엇인지 이해해 보겠습니다. 상자에 crayon이 가득 차 있다고 상상해 봅시다. 각 crayon은 다른 색상을 가지고 있지만, 모두 하나의 상자에 보관되어 있습니다. 배열은 그 상자와 같아요 - 여러 개의 동일한 유형의 항목(요소)을 저장할 수 있는 컨테이너입니다.

배열 생성

배치 스크립팅에서 배열을 생성하는 것은 간단합니다. set 명령어를 사용하여 배열을 정의합니다. 과일 배열을 생성해 보겠습니다!

@echo off
set fruits[0]=Apple
set fruits[1]=Banana
set fruits[2]=Cherry
set fruits[3]=Date
set fruits[4]=Elderberry

이 예제에서 우리는 fruits라는 이름의 배열을 5개의 요소로 생성했습니다. 각 요소는 인덱스 번호를 할당받아 시작 번호는 0입니다.

프로 팁: 항상 배열 인덱스를 0에서 시작하세요. 대부분의 프로그래밍 언어에서 이 관례를 따릅니다!

배열 접근

이제 우리가 과일 바스켓(배열)을 가지고 있으니, 특정 과일을 어떻게 고를까요? 인덱스 번호를 사용합니다!

@echo off
set fruits[0]=Apple
set fruits[1]=Banana
set fruits[2]=Cherry

echo The first fruit is: !fruits[0]!
echo The second fruit is: !fruits[1]!
echo The third fruit is: !fruits[2]!

이 스크립트를 실행하면 다음과 같이 보입니다:

The first fruit is: Apple
The second fruit is: Banana
The third fruit is: Cherry

배열 참조 주위에 이스터 마크(!)가 있는 것을 주의하세요. 이는 매우 중요합니다! 이는 배치가 지연 확장을 사용하도록 지시하며, 배열 요소에 접근하기 위해서는 필요합니다.

배열 수정

우리가 블랙베리를 바나나보다 좋아한다고 결정한 경우는 어떻게 되는 걸까요? 문제ありません! 우리는 배열을 쉽게 수정할 수 있습니다:

@echo off
setlocal enabledelayedexpansion

set fruits[0]=Apple
set fruits[1]=Banana
set fruits[2]=Cherry

echo Before: The second fruit is !fruits[1]!

set fruits[1]=Blackberry

echo After: The second fruit is !fruits[1]!

이 스크립트는 다음과 같이 출력합니다:

Before: The second fruit is Banana
After: The second fruit is Blackberry

이렇게 쉬웠죠? 우리는 배열의 두 번째 요소를 바꿨습니다!

배열 반복

이제 우리가 바스켓에 있는 모든 과일을 보고 싶다면 어떻게 해야할까요? for 루프를 사용하여 배열을 반복할 수 있습니다:

@echo off
setlocal enabledelayedexpansion

set fruits[0]=Apple
set fruits[1]=Blackberry
set fruits[2]=Cherry
set fruits[3]=Date
set fruits[4]=Elderberry

for /L %%i in (0,1,4) do (
echo Fruit %%i is: !fruits[%%i]!
)

이 스크립트는 다음과 같이 출력합니다:

Fruit 0 is: Apple
Fruit 1 is: Blackberry
Fruit 2 is: Cherry
Fruit 3 is: Date
Fruit 4 is: Elderberry

여기서 무슨 일이 일어나고 있는지 보세요:

  • /L은 루프가 수치 범위를 반복하도록 지시합니다
  • %%i는 우리의 루프 변수입니다
  • (0,1,4)는 0에서 시작하여 1씩 증가하고 4에서 멈추는 것을 의미합니다

배열 길이

일부 다른 프로그래밍 언어와 달리, 배치는 배열의 길이를 얻는 내장 방법을 가지고 있지 않습니다. 하지만 걱정 마세요! 우리는 작은回避책을 만들 수 있습니다:

@echo off
setlocal enabledelayedexpansion

set fruits[0]=Apple
set fruits[1]=Blackberry
set fruits[2]=Cherry
set fruits[3]=Date
set fruits[4]=Elderberry

set "x=0"
:SymLoop
if defined fruits[%x%] (
set /a "x+=1"
GOTO :SymLoop
)
echo The fruits array has %x% elements.

이 스크립트는 다음과 같이 출력합니다:

The fruits array has 5 elements.

우리가 여기서 하는 일은 정의된 요소가 끝날 때까지 수를 셀 수 있도록 하는 것입니다. 상자에 있는 crayon 수를 세는 것과 같은 이치입니다!

배열 구조 생성

이제 좀 더 고급 단계로 가보겠습니다. 우리는 배열을 사용하여 더 복잡한 구조를 만들 수 있습니다. 과일의 이름과 색상을 가진 "데이터베이스"를 만들어 보겠습니다!

@echo off
setlocal enabledelayedexpansion

set "fruits[0].name=Apple"
set "fruits[0].color=Red"
set "fruits[1].name=Banana"
set "fruits[1].color=Yellow"
set "fruits[2].name=Blueberry"
set "fruits[2].color=Blue"

for /L %%i in (0,1,2) do (
echo Fruit %%i is a !fruits[%%i].color! !fruits[%%i].name!
)

이 스크립트는 다음과 같이 출력합니다:

Fruit 0 is a Red Apple
Fruit 1 is a Yellow Banana
Fruit 2 is a Blue Blueberry

우리는 각 과일에 이름과 색상을 가진 구조를 만들었습니다. 각 crayon에 색상과 특정 이름을 가진 더 상세한 상자와 같은 것입니다!

결론

축하합니다! 여러분은 배치 스크립팅의 배열 세계로 첫 걸음을 내딛었습니다. 우리는 배열 생성, 요소 접근 및 수정, 배열 반복, 배열 길이 찾기, 그리고 더 복잡한 구조 생성에 대해 다루었습니다.

기억하시오, 실습이 완성입니다. 여러분의 좋아하는 책이나 영화로 자신의 배열을 만들어 보세요. 다양한 방법으로 데이터를 조작하고 표시해 보세요. 얼마 지나지 않아 여러분은 배열을 사용하여 스크립트에서 다양한 정보를 조직하고 관리할 수 있을 것입니다!

행복한 코딩 되세요, 여러분의 배열이 항상 풍성하길 바랍니다! ???

Credits: Image by storyset