Скрипт Batch - Строки

Введение в строки в скриптовании Batch

Здравствуйте, стремящиеся к знаниям программисты! Сегодня мы окунемся в奇妙ный мир строк в скриптовании Batch. Как ваш доброжелательный邻居-преподаватель компьютера, я рад помочь вам в этом путешествии. Не волнуйтесь, если вы никогда не писали ни одной строки кода - мы начнем с самого начала!

Batch Script - Strings

Строка, простыми словами, этоsequence из символов. Это может быть слово, предложение или даже целый абзац. В скриптовании Batch мы используем строки постоянно для отображения сообщений, хранения информации и обработки текста.

Основные операции со строками

Отображение строк

Давайте начнем с最基本的 операции - отображения строки. В Batch для этого мы используем команду echo.

@echo off
echo Hello, World!
pause

Сохраните это как hello.bat и запустите его. Вы увидите "Hello, World!" на вашем экране. Команда @echo off в начале - хорошая практика, чтобы сделать вывод вашего скрипта чистым, а pause в конце держит окно открытым, чтобы вы могли увидеть результат.

Хранение строк в переменных

Теперь давайте сохраним нашу строку в переменной:

@echo off
set message=Hello, Batch scripting!
echo %message%
pause

Здесь мы используем команду set, чтобы сохранить нашу строку в переменную под названием message. Чтобы использовать переменную, мы окружаем ее процентными знаками.

Присоединение строк

Присоединение строк (конкатенация) - это распространенная операция. В Batch это так же просто, как putting их рядом:

@echo off
set firstName=John
set lastName=Doe
set fullName=%firstName% %lastName%
echo Full name: %fullName%
pause

Этот скрипт выведет "Full name: John Doe". Обратите внимание, как мы добавили пробел между %firstName% и %lastName%, чтобы разделить их.

Работа с вводом пользователя

Давайте сделаем наши скрипты интерактивными, получая ввод от пользователя:

@echo off
set /p name=What's your name?
echo Nice to meet you, %name%!
pause

Сwitch /p с set позволяет нам запросить ввод у пользователя. Попробуйте запустить этот скрипт и ввести ваше имя!

Manipulation строк

Извлечение подстроки

Batch позволяет нам извлекать части строки, используя синтаксис %variable:~start,length%:

@echo off
set message=Hello, World!
echo %message:~0,5%
echo %message:~7,5%
pause

Это выведет:

Hello
World

Первый echo извлекает символы с позиции 0 до 5, а второй - с позиции 7 до 5 символов после этого.

Замена части строки

Мы также можем заменить части строки:

@echo off
set phrase=The quick brown fox jumps over the lazy dog
echo %phrase:fox=cat%
pause

Это заменяет "fox" на "cat" в нашей фразе.

продвинутые операции со строками

Длина строки

Batch не имеет встроенной функции для получения длины строки, но мы можем использовать хитрый обходной путь:

@echo off
set string=Hello, World!
call :strLen string strlen
echo The length of "%string%" is %strlen%
pause
goto :eof

:strLen
setlocal enabledelayedexpansion
set "s=!%~1!"
set "len=0"
for %%N in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%N,1!" neq "" (
set /a "len+=%%N"
set "s=!s:~%%N!"
)
)
endlocal & set %~2=%len%
goto :eof

Этот скрипт определяет функцию :strLen, которая calculates длину строки. Это немного сложно, но это показывает, как мы можем создавать мощные инструменты в Batch.

Преобразование регистра

Batch не имеет встроенного преобразования регистра, но мы можем использовать команду for с option /L для достижения этого:

@echo off
set string=Hello, World!
call :toUpper string result
echo Upper case: %result%
call :toLower string result
echo Lower case: %result%
pause
goto :eof

:toUpper
for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set %2=%%%2:%%a=%%a%%%
goto :eof

:toLower
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call set %2=%%%2:%%A=%%a%%%
goto :eof

Этот скрипт определяет две функции: :toUpper и :toLower для преобразования регистра.

Заключение

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

Заканчивая, вот таблица, резюмирующая операции со строками, которые мы рассмотрели:

Операция Синтаксис Пример
Отображение строки echo string echo Hello, World!
Хранение строки set variable=string set message=Hello
Присоединение set result=%string1% %string2% set fullName=%firstName% %lastName%
Ввод пользователя set /p variable=prompt set /p name=What's your name?
Извлечение подстроки %variable:~start,length% %message:~0,5%
Замена %variable:old=new% %phrase:fox=cat%

Продолжайте программировать, продолжайте учиться и, самое главное, получайте удовольствие от скриптования Batch!

Credits: Image by storyset