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