Скрипт Batch - Массивы: Путеводитель для начинающих
Здравствуйте, будущие программисты! Сегодня мы окунемся в захватывающий мир массивов в скриптах Batch. Не волнуйтесь, если вы еще ни разу не писали ни строчки кода – я буду вашим дружелюбным проводником в этом путешествии. К концу этого руководства вы будете manipulateovat массивы, как профи!
Что такое массив?
Прежде чем мы углубимся, давайте поймем, что такое массив. Представьте себе коробку с карандашами. Каждый карандаш имеет свой цвет, но они все хранятся в одной коробке. Массив похож на эту коробку – это контейнер, который может содержать несколько элементов (называемых элементами) одного типа.
Создание массива
В скриптах 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