Скрипт Batch - Массивы: Путеводитель для начинающих

Здравствуйте, будущие программисты! Сегодня мы окунемся в захватывающий мир массивов в скриптах Batch. Не волнуйтесь, если вы еще ни разу не писали ни строчки кода – я буду вашим дружелюбным проводником в этом путешествии. К концу этого руководства вы будете manipulateovat массивы, как профи!

Batch Script - Arrays

Что такое массив?

Прежде чем мы углубимся, давайте поймем, что такое массив. Представьте себе коробку с карандашами. Каждый карандаш имеет свой цвет, но они все хранятся в одной коробке. Массив похож на эту коробку – это контейнер, который может содержать несколько элементов (называемых элементами) одного типа.

Создание массива

В скриптах Batch создание массива很简单. Мы используем команду set для определения нашего массива. Давайте создадим массив фруктов!

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

В этом примере мы создали массив fruits с пятью элементами. Каждый элемент имеет индексное число, начиная с 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

Обратите внимание на восклицательные знаки (!) вокруг ссылок на массив. Это очень важно! Они говорят Batch использовать отложенное расширение, что необходимо для доступа к элементам массива.

Изменение массива

Что, если мы решим, что нам больше нравится Черника, чем Банан? Нет проблем! Мы можем легко изменить наш массив:

@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, increment на 1 и остановиться на 4

Длина массива

В отличие от некоторых других языков программирования, Batch не имеет встроенного способа получить длину массива. Но не волнуйтесь! Мы можем создать небольшой обходной путь:

@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.

Что мы делаем здесь, это считаем, сколько элементов определено, пока не наткнемся на неопределенный элемент. Это как посчитать, сколько карандашей в коробке, пока не дойдем до пустого места!

Создание структур в массивах

Теперь давайте немного усложним задачу. Мы можем использовать массивы для создания более сложных структур. Давайте создадим "базу данных" фруктов с их цветами!

@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

Мы создали структуру, где каждый фрукт имеет имя и цвет. Это как иметь более детализированную коробку карандашей, где у каждого карандаша есть цвет и конкретное имя!

Заключение

Поздравляю! Вы только что сделали свои первые шаги в мир массивов в скриптах Batch. Мы рассмотрели создание массивов, доступ и модификацию элементов, перебор массивов, определение длины и даже создание более сложных структур.

Remember, practice makes perfect. Попробуйте создать свои собственные массивы, может быть, с вашими любимыми книгами или фильмами. Экспериментируйте с различными способами манипулирования и отображения данных. Before you know it, вы будете использовать массивы для organizovanie и управления различной информацией в своих скриптах!

Счастливо кодить, и пусть ваши массивы всегда будут плодовитыми! ???

Method Description
Creating an Array Use set arrayname[index]=value
Accessing Array Elements Use !arrayname[index]! with delayed expansion
Modifying an Array Reassign value with set arrayname[index]=newvalue
Iterating Over an Array Use a for /L loop
Finding Array Length Use a loop to count defined elements
Creating Structures Use dot notation: arrayname[index].property=value

Credits: Image by storyset