Как написать скрипт для командной строки windows

#статьи


  • 0

Автоматизируем рутину в Windows с помощью скриптов.

Иллюстрация: Оля Ежак для Skillbox Media

Филолог и технарь, пишет об IT так, что поймут даже новички. Коммерческий редактор, автор технических статей для vc.ru и «Хабра».

На Windows часто возникают рутинные задачи, которые хочется автоматизировать. Например, почистить временные файлы, забэкапить важные документы или запустить одним кликом несколько приложений. Для этого есть простой инструмент — BAT-файлы (в простонародье «батники»). В этой статье научимся разрабатывать простые скрипты и запускать их по расписанию.

Эксперт

CTO Flocktory, программный директор профессии «DevOps-инженер» в Skillbox, директор программного комитета DevOpsConf.

Содержание

  • Как создать BAT-файл
  • Команды и синтаксис
  • Как объявить переменную
  • Как комментировать строки
  • Примеры BAT-файлов
  • Как запустить BAT-файл через командную строку

BAT-файлы — это скрипты с набором команд, которые понимает командная строка Windows. Их можно использовать для автоматизации задач, которые часто повторяются или занимают у пользователя много времени. Такие скрипты хранятся в файлах с расширением .bat.

Для создания BAT-файла понадобится любой текстовый редактор, например стандартный «Блокнот». Давайте откроем его и напишем скрипт, который выведет в окне командной строки сообщение Hello, World!:

@echo off
echo Hello, World!
pause

Теперь нужно сохранить документ в формате .bat. Для этого выберем пункт Сохранить как в разделе меню Файл.

Скриншот: «Блокнот» / Skillbox Media

В появившемся окне можно ввести любое название файла, а конце надо обязательно добавить расширение .bat. Затем нажимаем Сохранить:

Скриншот: «Блокнот» / Skillbox Media

Если запустить получившийся файл, откроется командная строка с нашим сообщением:

Скриншот: «Командная строка» / Skillbox Media

Для разработки батников существует множество команд. Рассмотрим те, что встречаются чаще всего.

Команда Аргумент команды Действие
title Желаемый заголовок Устанавливает заголовок окна командной строки на желаемый
cd Путь к каталогу Переводит пользователя в каталог, указанный в пути к файлу
start Команда или путь к файлу Запускает указанный файл программы или выполнение команды в новом окне командной строки
mkdir или md Имя папки Создаёт папку с указанным именем
copy Имена файлов и путь к папке для копирования Копирует файлы в указанный каталог
xcopy Имена файлов и путь к папке для копирования Копирует каталоги и файлы, сохраняя их структуру
move Путь к файлу и к конечному каталогу Перемещает файлы из одной папки в другую
del Путь к папке Удаляет файлы внутри каталога. Не трогает папки
rd Путь к папке Удаляет папку
start Путь к файлу программы Запускает файл программы
color Обозначение цвета Меняет цвет фона и текста командной строки
echo Текст Выводит текст на экран командной строки
chcp Обозначение кодировки Указывает кодировку текста. Пригодится для корректного отображения кириллицы
pause По окончании выполнения команд оставляет окно командной строки запущенным
exit Завершает работу командной строки

Переменная — виртуальная ячейка с присвоенным именем, в которой хранятся данные. Это может быть текст, числа или выражения. К переменной можно обращаться по имени, чтобы использовать её содержимое или перезаписывать его.

В BAT-файлах переменная объявляется с помощью команды set. После команды надо указать уникальное имя переменной и присвоить ей значение:

@echo off
set example=Hi,user!
echo %example%
pause

Разберём строки скрипта:

  • @echo off — эта строка отключает отображение команд. Будут показаны только строки, которые начинаются с echo.
  • set example=Hi, user! — создаёт переменную с именем primer и записывает в неё строку Hi, user!.
  • echo %example% — выводит содержимое переменной на экран.
  • pause — эта команда не даёт окну закрыться сразу после выполнения скрипта, чтобы мы могли оценить результат.

Если запустить этот BAT-файл, то в командной строке появится содержимое переменной example:

Скриншот: «Командная строка» / Skillbox Media

Для записи в переменную значения выражения надо использовать флаг /a перед именем:

set /a example=5*10

В BAT-файлах бывает очень много строк кода. Настолько много, что в них можно заблудиться, а со временем забыть логику всего скрипта. В таких случаях лучше использовать комментарии, объясняющие код. Они не отображаются при запуске и не влияют на выполнение команд.

Для создания однострочных комментариев используют команду rem или двойное двоеточие (::):

rem текст_комментария
:: текст_комментария

Например, следующий скрипт не выведет на экран строку Следующие команды выводят текст на экран:

@echo off
rem Следующие команды выводят текст на экран
set primer=Hi, user! 
echo %primer%
pause

Для больших комментариев на несколько строк можно использовать команду goto:

goto comment
===
текст_комментария
===
:comment

Обратите внимание, что после goto следует название метки — comment, она же и закрывает комментарий в конце. На самом деле можно использовать любое название метки, главное — чтобы оно было уникальным.

Разберём примеры готовых BAT-файлов для разных задач. Их можно скопировать и использовать уже сейчас.


Допустим, необходимо время от времени создавать копию всех текстовых файлов, лежащих в каталоге Документы. Чтобы не делать это каждый раз вручную, можно создать скрипт и запускать его с рабочего стола.

Батники лучше начинать с команды @echo off, чтобы избавиться от служебных строк, которые информируют о ходе выполнении скрипта. Убрав их, мы ничего не потеряем. Если нужно будет выводить текст, написанный кириллицей, то второй строчкой BAT-файла нужно указать кодировку:

chcp 65001

При каждом запуске скрипта в папке backup на диске C: будем создавать директорию с текущей датой в названии — так будет проще искать бэкапы. Для этого используем команду md с параметром %DATE%:

md "C:/backup/%DATE%"

Теперь скопируем содержимое папки «Документ» в созданную директорию. С помощью параметра %USERNAME% можно обратиться к файлам текущего пользователя, если на компьютере их несколько:

xcopy "C:/Users/%USERNAME%/Documents" "C:/backup/%DATE%"

Для экономии места будем архивировать бэкапы с помощью 7-zip. Нужно будет предварительно скачать и установить программу по инструкции на сайте разработчика.

Далее переходим в каталог с резервными копиями с помощью команды cd и вызываем 7-zip с параметром -tzip. Появится архив бэкапа в формате .zip:

cd "C:/backup/%DATA%"
"C:/Program Files/7-Zip/7z.exe" -tzip a %DATE%.zip %DATE%

Ход выполнения скрипта можно сопровождать сообщениями командной строки, чтобы пользователь узнал, когда резервное копирование завершится. Для вывода сообщений используется команда echo.

Кроме того, текст, выводящийся на экран, можно покрасить с помощью команды color, передав ей код цвета. Эту строчку лучше добавлять в начало батника.

Весь список доступных цветов приведён в таблице:

Таблица цветов для оформления скриптов
Скриншот: «Командная строка» / Skillbox Media

Так выглядит перекрашенная командная строка Windows
Скриншот: «Командная строка» / Skillbox Media

Полный текст скрипта для резервного копирования файлов:

@echo off
chcp 65001
color 03
echo Начинается процесс резервного копирования
md "C:/backup/%DATE%"
xcopy "C:/Users/%USERNAME%/Documents" "C:/backup/%DATE%"
cd "C:/backup/%DATA%"
"C:/Program Files/7-Zip/7z.exe" -tzip a %DATE%.zip %DATE%
echo Процесс завершен
pause

Бывает, что для работы надо запустить одновременно несколько приложений — например, браузер, мессенджер, редактор кода и клиент Git. Этот процесс можно автоматизировать, чтобы все необходимые программы открывались по одному клику.

Исполняемые файлы запускаются командой start. В качестве аргумента ей надо передать путь к файлу на диске:

start "" "путь_к_исполняемому_файлу"

Так, чтобы открыть одновременно браузер Microsoft Edge, текстовый редактор WordPad и приложение «Службы», надо трижды вызвать команду start:

start "" "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
start "" "C:\Program Files\Windows NT\Accessories\wordpad.exe"
start "" "C:\Windows\system32\services.msc"

Перед аргументом всегда добавляйте двойные кавычки («»), иначе откроются не программы, а новые экземпляры командной строки.

В Windows есть папка Temp, в которой система собирает временные файлы из браузера и приложений. Если её не очищать, то со временем её размеры могут увеличиться до десятков гигабайт.

Пользователи редко чистят папку с временными файлами. Для этого надо включить отображение скрытых папок, найти директорию на диске и вручную удалять мусор. Проще автоматизировать эту задачу с помощью простого BAT-файла, который будет очищать папку Temp по клику мыши или расписанию.

Сначала вызовем команду rd с параметрами /s и /q — это полностью удалит папку с диска. Затем создадим Temp заново с помощью mkdir:

rd /s /q C:\Users\%USERNAME%\AppData\Local\Temp\
mkdir C:\Users\%USERNAME%\AppData\Local\Temp\

Запускать BAT-файлы можно разными способами. Самый очевидный — двойной щелчок левой кнопкой мыши. Также можно делать это из командной строки или настроить автоматический запуск по расписанию.


  • Откройте окно поиска Windows. Он находится рядом с меню «Пуск».
  • Введите в строке поиска cmd и запустите инструмент «Командная строка».

Скриншот: «Командная строка» / Skillbox Media
  • В окне командной строки укажите полный путь до файла .bat и нажмите Enter.

Скриншот: «Командная строка» / Skillbox Media

Батники в Windows открываются в окне командной строки, что иногда может мешать в работе. Простой скрипт на языке VBScript позволяет запускать BAT-файлы в фоновом режиме:

  • Откройте любой текстовый редактор, например «Блокнот».
  • Вставьте в новый документ код скрипта для скрытого запуска:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Полный_путь_до_.bat_файла" & Chr(34), 0
Set WshShell = Nothing

  • Сохраните файл, но вместо .bat укажите расширение .vbs.
  • Запустите файл, щёлкнув по нему дважды левой кнопкой мыши.

Если у вас есть повторяющиеся задачи, то можно настроить запуск BAT-файлов по расписанию. Для этого понадобится встроенный в Windows «Планировщик заданий».

1. Нажмите сочетание клавиш Win + R, в появившемся окне введите taskschd.msc и нажмите Enter.

Скриншот: Меню «Выполнить» / Skillbox Media

2. Откроется «Планировщик заданий». В правой части его окна нажмите Создать простую задачу.

Скриншот: «Планировщик заданий» / Skillbox Media

3. В «Мастере создания простой задачи» введите имя новой задачи и её описание. Затем нажмите Далее.

Скриншот: «Мастер создания простой задачи» / Skillbox Media

4. Выберите периодичность запуска. Доступны опции с привязкой к конкретному времени или запуску системы.

Скриншот: «Мастер создания простой задачи» / Skillbox Media

5. Введите время, в которое нужно запускать задачу.

Скриншот: «Мастер создания простой задачи» / Skillbox Media

6. Отметьте пункт Запустить программу.

Скриншот: «Мастер создания простой задачи» / Skillbox Media

7. Укажите путь до вашего BAT-файла и нажмите Готово.

Скриншот: «Мастер создания простой задачи» / Skillbox Media

Теперь батник будет запускаться с заданной периодичностью. К примеру, так можно настроить автоматическое удаление временных файлов при каждом запуске системы или создание резервной копии раз в неделю.

BAT-файлы — мощный инструмент для автоматизации задач на компьютерах под управлением Windows. Больше о командах можно узнать из официальной документации Microsoft, а на GitHub разработчики публикуют коллекции полезных батников.

Как быстро заработать в IT в 2025 году
Попробуйте себя в разных направлениях IT и сделайте первый шаг к новой профессии на удалёнке!

Учиться бесплатно →

Дисклеймер

Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.

Что такое батники и с чем их едят

Пакетный файл или в простонародье батник — это файл, который запускает командную сроку или сокращенно cmd, которая построчно интерпретирует команды, записанные в нем. Подробнее смотрите на https://ru.wikipedia.org/wiki/Пакетный_файл.

Первая программа и основные команды

Чтобы сделать батник, нужно сначала создать текстовый файл с именем test и изменить расширение c .txt на .bat. О том, как можно это сделать, читайте здесь: https://remontka.pro/file-extensions. У вас должен появиться файл с такой иконкой:

test.bat

Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем «Открыть». Должен открыться блокнот, пишем:

@echo off
echo Hello world!
pause

В 1-ой сроке («@echo off») префикс ‘@ ‘ означает, что команда не будет выведена на экран(попробуйте его убрать :-) ), сама же команда (echo) выводит текст следующий за ней(см. строку 2), НО, если подать строку «off», все последующие команды будут действовать так, как будто перед ними стоит префикс ‘@’, «echo on», соответственно, выключает этот режим. Чтобы вывести символ «%», его нужно дублировать, потом поймете почему :-), для вывода пустой строки поставьте «.» после «echo»
В 3-ей строке команда выводит строку «press any key to continue . . .» (если у вас русский язык — «Для продолжения нажмите любую клавишу . . .») и останавливает программу до нажатия любой клавиши.

Наводим красоту

Команда «rem»

не эта :)

не эта :)

не делает ничего и служит комментарием к коду

rem Это самая лучшая прога в мире!!!!!

Код включает русские символы и другие из ascii(например: «╬▓☼», можно скопировать с http://pascalguru.ru/psevdograf.html), иначе ascii символы превратятся в кракозябры:

chcp 65001

Следующий код код работает, как команда «pause», но ничего не выводит на экран и не реагирует на нажатие клавиш(я потом объясню, как это работает).

:m
goto m

А этот — меняет заголовок окна на «name»

Заголовок окна

Заголовок окна
title name

Эта команда меняет цвет фона и текста, вместо a и b можно поставить любые шестнадцатеричные цифры(команда не сработает если a = b) см. таблицу ниже. Запись c одной буквой «а» аналогично записи «0a»

color ab
Таблица

Таблица

Эта — досрочно завершает программу

exit

Переменные

Создать переменную можно с помощью команды set, синтаксис объявления следующий: P.S. это не совсем переменные, это скорее макросы (для тех к кто не знает C/C++ это именованный кусочек кода, имя которого заменяется на этот кусочек кода)

set a=Hello world

Если после «set» добавить флаг «/a» то:

  1. Переменной задастся значение выражения, а не его текст, например:

    set a=2+2
    > 2+2
    set /a a=2+2
    > 4
  2. Переменной можно присвоить ТОЛЬКО числовое значение

Чтобы обратиться к переменной, нужно окружить ее символами «%» (так %name%), пример кода:

set /a a=%b%+%b%
echo %a%

Подробнее о переменных

Если добавить флаг «/p», то выводиться значение после символа «=», а переменной задается введенное значение(запустите этот код:)

@echo off
set /p a=Enter str
echo %a%
pause

следующий код вырезает строку от символа номер «a» до символа номер «b» НЕ включительно(счет идет с нуля, отрицательные числа — счет с конца от единицы). Если аргумент один, то он присваивается числу «b», а «a» = 0

%str:~a,b%

следующий заменяет подстроки «a» в строке на строки «b»:

%str:a=b%

Циклы и условия

Цикл можно создать с помощью команды «for», синтаксис следующий:

for %%i in (a b c) do (
		cmd
)

или такой

for %%i in (a b c) do cmd

(a b c) это список (не обязательно из 3-х элементов) и переменная %%i (нужно ставить символ после процентов, а не между) по очереди проходит по значениям в списке

Если добавить флаг «/l», то переменная в первый раз будет равна «a». К ней каждый раз будет прибавляться «b», пока она не станет больше «c»(тут размер ДОЛЖЕН равняться 3)

запустите этот код, тут все наглядно

@echo off
chcp 65001
echo Начало
for /l %%i in (1 1 10) do echo %%i
echo Конец
pause

Команда if выполняет код, если условие верно (или если поставить not после if, когда НЕ верно), вот операторы сравнения:

P.S. строки нужно брать в кавычки «%str%»==»Hello»

equ(==)

=

neq

lss

<

leq

gtr

>

geq

пример кода:

@echo off
set /p a=Enter number
if a gtr 0 echo positive else\
if a equ 0 echo 0 else echo negative
pause

в 3-ей строке, если «a» > 0 выводиться «положительный»(на английском :-) ), если равен — 0,в 4-ой если меньше — «отрицательный»

символ «\» означает, что команда продолжается на следующей строке

Метки

Создадите файл start.bat в той же папке, где и test.bat, напишите в нем:

test.bat 2 2

Мы запустили батник, НО подали в него аргументы 2 и 2. Чтобы к ним обратиться, нужно написать %n, где «n» — номер аргумента, считая от одного(не от нуля), вот код, считающий сумму первого и второго аргумента (их может быть от нуля до 9-и):

@echo off
set /a res=%1+%2
echo res
pause

Метка — это именованное место в коде, она создается с помощью команды «:name»

А этот переходит на метку :m и продолжает выполнение, начиная с нее

rem куча кода
:m
rem куча кода
goto m
rem куча кода

И в завершение статьи, хочу сказать о команде call. Она превращает в последующей команде «%%» в «%», а переменные — на их значения. Пример использования:

call echo %%str:~%a%,%b%%%

В мире информационных технологий возможность автоматизации рутинных задач является мощным инструментом повышения эффективности. Один из способов достижения этой цели – использование BAT файлов, которые предоставляют пользователям удобный способ выполнения команд в терминале без вмешательства человека. Независимо от того, работаете ли вы с большими проектами или просто хотите упростить повседневные задачи, внедрение автоматизации с помощью BAT файлов может существенно сэкономить ваше время.

BAT файлы, широко используемые для автоматического выполнения команд в среде операционной системы Windows, позволяют автоматизировать процессы, упрощая взаимодействие с командной строкой. Они являются текстовыми документами, содержащими последовательность команд, которые могут быть запущены одно за другим. Понимание того, как создать и использовать такие файлы, открывает огромные возможности для их применения в различных аспектах работы с компьютером.

Создание BAT файлов включает в себя написание инструкций с использованием встроенных команд для управления системой. Это может включать в себя инициализацию системных процессов, создание резервных копий данных, управление файлами и многими другими операциями. Простой, но мощный синтаксис этих файлов позволяет комплексно подходить к выполнению задач и упрощает их повторное использование. В результате, знание о том, как их создать и использовать, становится ценным навыком в арсенале любого IT-специалиста.

Понимание CMD файлов

В операционной системе Windows используется специальный вид текстового документа, который позволяет автоматизировать выполнение задач. Это средство помогает определить последовательность команд для выполнения желаемых действий. Управление процессами через такой текстовый документ делает рабочие процессы более упорядоченными и эффективными, минимизируя количество ручных действий.

Файлы с расширением .bat представляют собой набор инструкций, которые запускаются средой командной строки. Этот документ позволяет вам составлять и исполнять различные скрипты, включая запуск приложений, управление файлами и изменением их атрибутов. Каждый текстовый документ этого типа содержит множество команд, которые выполняются одна за другой после вызова.

Среди основных преимуществ таких документов – простота использования и отсутствие необходимости в дополнительных программных инструментах. Они эффективны для выполнения рутинных задач, таких как автоматическое копирование файлов или настройка системного окружения, что крайне удобно для системных администраторов и продвинутых пользователей.

Важно также понимать, что такие текстовые файлы могут быть мощным инструментом, но при этом их использование требует осторожности. Неправильная настройка или ошибка в команде могут привести к непредвиденным последствиям, таким как потеря данных или сбои в работе системы. Используя командные инструкции, рекомендуется всегда заранее тестировать их в безопасной среде.

Основы языкового синтаксиса

Языковой синтаксис командных файлов значительно упрощает автоматизацию задач. Понимание базовых элементов синтаксиса позволяет эффективно использовать командную строку для управления операционной системой и выполнения различных операций. Знание основ помогает в создании более сложных скриптов и решении разноcложных задач.

Наиболее популярный формат таких скриптов – это .bat файлы. Они состоят из набора команд, которые выполняются последовательно. Каждая команда выполняет определенное действие, от простого копирования файлов до тонкой настройки системных параметров. Важно понимать, что строка команд в таких файлах – это единица выполнения. Главная цель заключается в том, чтобы обеспечить точное выполнение всех команд, включенных в последовательность.

Основные конструкции включают объявление переменных и контроль над потоком выполнения. Переменные позволяют хранить значения, которые могут быть изменены дальше в скрипте. К примеру, оператор SET используется для создания переменной, которая может быть использована в скрипте.

Управление потоком выполнения достигается за счет использования условных операторов и циклов. Если, например, необходимо выполнить команду только при соблюдении определенного условия, используется конструкция IF. Циклы FOR позволяют обрабатывать набор данных или выполнять определенные действия для каждого элемента коллекции. Благодаря такой структуре, автоматизация рутинных задач становится проще.

Владение основами языка даёт возможность не только создавать эффективные bat-скрипты, но и устранять ошибки, а также оптимизировать выполнение команд. Это искусство является важным навыком для IT-специалиста, желающего автоматизировать свои повседневные задачи.

Редакторы для создания CMD файлов

Самым простым вариантом является использование стандартного блокнота, который поставляется с Windows. Несмотря на свои ограниченные возможности, он обладает минималистичным интерфейсом, подходящим для внесения небольших изменений. Его главное преимущество в доступности на любой системе Windows и простоте использования.

Для более профессионального подхода стоит обратить внимание на расширенные текстовые редакторы. К примеру, Notepad++ предоставляет богатый функционал: подсветка синтаксиса облегчает восприятие командных строк, а вкладочная структура ускоряет переключение между несколькими открытыми документами. Это значительно упрощает управление сложными скриптами.

Еще один заметный инструмент – Visual Studio Code. Этот редактор, будучи кроссплатформенной средой, обеспечивает не только комфортную работу с командами, но и множество расширений для повышения функциональности. Например, помощь в автодополнении команд позволяет быстрее и точнее писать скрипты.

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

Практическое руководство по написанию кода

Изучение основ написания скриптов помогает автоматизировать разнообразные задачи в операционной системе. Если вы хотите научиться пользоваться скриптами формата .bat, начните с простых командных строк, которые выполняют базовые действия. Это позволит лучше понять, как взаимосвязаны команды и как их применять в различных сценариях.

Перед началом программирования полезно знать, какие команды и их параметры существуют в командной строке. Это позволяет пользователю выстраивать последовательности команд, выполняемые в нужном порядке. Постепенное освоение более сложных скриптов открывает возможности для оптимизации рутинных процессов.

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

Команда Описание
echo
start Запускает новое окно или программу.
pause Останавливает выполнение скрипта до тех пор, пока пользователь не нажмёт клавишу.
rem Добавляет комментарий в код, помогая его структурированию и объяснению.
for Организует цикл, повторяя выполнении набора команд несколько раз.

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

Отладка и тестирование CMD файлов

Когда вы завершили процесс программирования вашего bat-скрипта, следующим важным шагом становится его проверка на наличие ошибок и оптимизация рабочих процессов. Эта часть разработки требует особого внимания, так как небольшие ошибки могут существенно повлиять на выполнение команды в системе. Наша цель – обеспечить стабильность и надежность вашей автоматизации, устранив возможные неполадки.

Использование командного интерфейса Windows открывает множество возможностей для детальной отладки. Начните с запуска вашего скрипта в пошаговом режиме, чтобы видеть порядок выполнения каждой команды. Для этого можно использовать команду pause, что позволит остановить выполнение и проверить текущий статус перед продолжением.

Не забывайте об использовании эмуляторов терминалов, таких как Windows Terminal или аналогичные программы. Эти инструменты предоставляют расширенные возможности для взаимодействия с командной строкой, включая разный уровень подсветки синтаксиса и дополнительные средства мониторинга процессов.

В случае, если ваш скрипт предназначен для запуска на нескольких версиях ОС Windows, убедитесь, что он учтёт возможные различия в командных интерпретаторах и внутреннем функционале. Это позволит избежать несовместимости и обеспечить универсальную производительность вашего кода.

Регулярно выполняйте тестирование в условиях, максимально приближенных к рабочим. Это незаменимый шаг, особенно если ваш скрипт будет использоваться в производственном окружении. Помните, что от качества вашей тестовой базы зависит безопасность и надёжность выполнения вашего скрипта.

Примеры и шаблоны люстрирующие создание

Для более глубокого понимания процесса работы с командными файлами и их кода, полезно изучить примеры и готовые шаблоны. Они помогают увидеть реальное применение языкового синтаксиса и открыть для себя новые возможности. Рассмотрим наборы полезных скриптов, демонстрирующих ключевые аспекты и функции.

  • Простейший пример:

    Запуск калькулятора и блокнота:

    1. Откройте текстовый редактор и вставьте строки:
       @echo off start calc.exe start notepad.exe 
    2. Сохраните файл с расширением .bat.
  • Создание резервной копии:

    Скрипт для автоматического архивирования папки:

    1. Откройте редактор и добавьте:
       @echo off xcopy C:\исходная_папка D:\резервная_копия /E /I /Y 
    2. Сохраните как backup.bat.
    3. Запустите для создания резервной копии.
  • Проверка доступности сайтов:

    Командный файл для мониторинга веб-сайтов:

    1. Вставьте следующий код в текстовый файл:
       @echo off ping -n 1 www.example.com >nul if errorlevel 1 ( echo Website is down ) else ( echo Website is up ) 
    2. Сохраните под именем check_website.bat.

Эти примеры показывают разнообразие задач, которые могут быть автоматизированы. Работая с командными файлами, можно существенно упростить выполнение рутинных операций, повысив эффективность и снизив количество ошибок.

Комментарии

Что важно запомнить

BAT-файл (от английского batch file, переводится как «пакетный файл») — серия последовательных директив, собранных в документ с расширением .bat или .cmd. При запуске такого документа стартует командный процессор Windows и выполняет команды по очереди.

Отметим, что файлы с расширением .bat будут корректно обработаны как относительно новым интерпретатором CMD.EXE, так и «старичком» COMMAND.COM. А с расширением .cmd — окажутся по зубам только CMD.EXE.

Обзор BAT-файлов и их предназначения

Чаще всего BAT-файлы применяются, чтобы автоматически выполнять консольные команды. С их помощью это проще, чем с использованием любого другого языка программирования. Причиной тому их уникальная простота, которая позволяет создавать сложные и многокомпонентные скрипты — например, при желании в «батнике» можно написать даже тетрис — без каких-либо дополнительных ухищрений и инструментов.

BAT-файлы сильно упрощают ежедневную работу в Windows, позволяя…

  • …забыть о выполнении скучных рутинных задач типа создания бэкапов, переименования и удаления. Все, что для этого потребуется — прописать простой скрипт с рядом простых команд.

  • …больше не контролировать исполнение скриптов. С BAT-файлами можно создавать и активировать многокомпонентные наборы команд — даже десятки и сотни их будут аккуратно выполняться в заданном порядке без участия пользователя.

  • …не заниматься ручной настройкой системы. Все механические действия, которые нужно выполнять, чтобы не утонуть в океане технического «мусора» Windows — например, временных и ненужных файлов, поврежденных ключей и ярлыков — можно делегировать «батникам». Таким образом текстовые скрипты избавят вас от необходимости регулярной настройки целого ряда системных параметров системы.

Пишем BAT-файл

Перечень того, что нужно для написания BAT-файла, состоит всего из двух компонентов. Это:

  • компьютер на Windows;

  • любой текстовый редактор: подойдет как бесхитростный «Блокнот», так и Notepad++ или другой редактор с возможностью подсветки синтаксиса — с такими программами управлять длинным списком команд будет проще.

Создание BAT-файла с нуля

С теорией разобрались, идем к практике — пишем простейший «батник». Он позволит вывести сообщение «Hello!» в интерпретатор Windows.

Введем скрипт «Блокноте»:

img

Скрипт для вывода текстового сообщения

Получившийся скрипт сохраним с расширением .bat: в верхнем горизонтальном меню выберем вкладку «Файл», нажмем «Сохранить как…» и дадим название:

img

Процесс сохранения с расширением .bat

Готово! При запуске в командном процессоре будет отображаться сообщение «Hello!»:

img

Сообщение «Hello!», запущенное интерпретатором Windows

Запуск BAT-файла

Проще всего стартануть BAT-файл, два раза кликнув по нему левой кнопкой мыши. Но есть и другие способы. Например, можно нажать на иконку файла правой кнопкой мыши и выбрать «Открыть» или «Запуск от имени администратора» — это пригодится, если нужный «батник» открывается только при наличии у пользователя расширенных прав.

img

Запуск от имени администратора

Описанные выше способы подойдут, если при запуске «батника» не требуется ответ. Другое дело, когда по итогу выполнения ожидается какое-либо сообщение от системы или числовой результат. В этом случае нужно:

  • перейти в командную строку Windows — набрать сочетание клавиш WIN+R и ввести cmd;

  • зайти в папку с нужным файлом и выполнить его.

Настройка периодического запуска

«Батники» очень полезны в создании периодических задач. Для того чтобы настроить их активацию, нужно использовать встроенный «Планировщик заданий» Windows.

Чтобы использовать «Планировщик», введем комбинацию WIN+R, добавим taskschd.msc и нажмем Enter. Увидим следующее:

img

«Планировщик заданий» Windows

Дальше в горизонтальном меню выберем «Действия» и перейдем во вкладку «Создать простую задачу…».

img

Окно создания периодического запуска скрипта в «Планировщике заданий»

В открывшемся окне можно будет настроить условия выполнения задачи:

  • назвать и описать ее;

  • настроить регулярность;

  • выбрать «Запуск», «Отправка» или «Вывод сообщения» в качестве действия;

  • проверить все настройки и активировать собранный скрипт.

Команды и синтаксис

Теперь давайте рассмотрим ключевые для BAT-файлов команды и посмотрим, как добавлять их в интерпретатор, чтобы все работало, как по нотам.

→ Важно понять: командный интерпретатор всегда работает последовательно, запуская команды по очереди, строка за строкой. Исключение лишь одно: GOTO отправит интерпретатор к указанной строке, с которой он вновь начнет выполнять задачи сверху вниз.

Есть несколько ключевых положений, которые помогут при работе с BAT-файлами:

  • Правило 1. Все команды начинаются с новой строки.

  • Правило 2. Использовать можно встроенные и внешние команды.

  • Правило 3. Директории важно указывать в кавычках — так при выполнении скриптов не возникнет ошибок.

  • Правило 4. Если команде нужно подтверждение, можно поставить перед ней ключ /-Y.

  • Правило 5. Чтобы просто запустить команду — без вывода сообщений об отображении в консоль — следует добавить @echo off в начало.

Основные команды

Интерпретатор Windows может обрабатывать команды двух типов:

  • Внешние. Ими могут быть любые файлы с расширениями .exe, .cmd или .bat, которые есть в операционной системе.

  • Встроенные. Те команды, которые добавлены в функциональность интерпретатора изначально.

Вот несколько примеров часто используемых встроенных команд:

img

Ключевые команды

Объявление переменных

Код внутри BAT-файлов содержит множество динамических элементов, которые могут меняться, не нарушая логику «батника». Существует целый список переменных сред — текстовых переменных Windows, хранящих данные о ряде настроек системы. Они задаются в виде %значение%: например, %USERNAME%, %COMPUTERNAME%, %DATE%, %TIME%. Чтобы их устанавливать, удалять или просматривать используется команда set.

Чтобы объявить переменную с помощью set нужно ввести следующий текст:

img

Пример того, как объявить переменную с помощью команды set

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

  • @echo off отключает вывод команд: благодаря ей мы видим только добавленный нами текст;

  • set example=Hello! создает саму переменную и записывает в нее текст (важно не ставить пробелы перед знаком равенства — с ними скрипт не сработает);

  • echo %example% выводит значение на экран;

  • pause удерживает интерпретатор открытым.

Вот, что мы увидим в результате:

img

Что получится при запуске

Числовая переменная добавляется в скрипт с помощью флага /a:

img

Написание скрипта с цифровой переменной и результат его выполнения

Комментирование строк

В BAT-файлах может быть очень много строк кода. Поэтому при работе с ними стоит использовать комментарии — даже сторонним пользователям они помогут понять логику скрипта и разобраться в командах. Добавлять комментарии можно смело: они не отображаются при запуске и не влияют на выполнение.

Чтобы добавить комментарий, можно использовать либо двойное двоеточие — ::, либо команду rem:

img

Таким образом можно добавить текстовый комментарий

А если вы хотите добавить комментарий в несколько строк, нужно использовать команду goto:

img

Пример добавления большого комментария

Примеры использования

Как мы говорили выше, чаще всего BAT-файлы используются для автоматизации выполнения рутинных задач и, как следствие, сокращения затрачиваемого на них времени. Поэтому давайте разберем, как создавать самые базовые и часто используемые команды.

Резервное копирование

Предположим, вы хотите регулярно копировать все текстовые файлы из папки «Документы». Для решения этой задачи тоже можно написать скрипт и делать бэкапы автоматически:

  • Шаг 1. Первым делом пишем в приложении «Блокнот» команду @echo off — она скроет технические строки о ходе выполнения скрипта.

  • Шаг 2. Если хотим вывести русскоязычный текст, то второй строкой вводим chcp 65001.

  • Шаг 3. Далее добавляем md с директорией — md: «C:/backup/%DATE%». Благодаря этой команде в указанной папке будет легко найти нужный бэкап по дате создания.

  • Шаг 4. Теперь копируем содержимое папки «Документы» с помощью параметра %USERNAME%: xcopy “C:/Users/%USERNAME%/Documents» “C:/backup/%DATE%”.

  • Шаг 5. Далее скачиваем и устанавливаем программу для архивации бэкапов 7-zip, вводим cd и переходим к ней с помощью параметра -tzip: cd “C:/backup/%DATA%» «C:/Program Files/7-Zip/7z.exe» -tzip a %DATE%.zip %DATE%.

Дополнительно добавляем в командную строку уведомления с помощью команды echo — они будут сообщать нам о начале и завершении выполнения скрипта.

В итоге получаем такой скрипт:

img

Скрипт для автоматизированного создания бэкапов

Одновременный запуск нескольких программ

Иногда при работе в ОС Windows нужно запустить несколько приложений одновременно. Для этого можно написать файл со start в сочетании с путем к указанному файлу.

Например, чтобы одновременно запустить браузер Google Chrome, текстовый редактор «Блокнот» и приложение «Службы», нужно ввести такой скрипт:

img

Скрипт для одновременного запуска нескольких приложений

→ Двойные кавычки в этом скрипте нужны, чтобы открыть сами приложения, а не новые экземпляры командной строки.

Очистка временных файлов

С помощью BAT-скриптов можно автоматически очищать папку с временными файлами Temp — по клику или расписанию. Для этого:

  • сперва удаляем папку Temp с диска через команду rd с параметрами /s и /q;

  • затем создаем Temp заново с помощью mkdir.

img

Скрипт для удаления временных файлов

Обновление IP-адреса

Чтобы вручную обновить IP-адреса в сетевом интерфейсе, проще всего воспользоваться командой ipconfig /renew. Однако при ее выполнении будет отражен длинный вывод. Чтобы перенести его в отдельный текстовый файл, можно использовать rem — она отключает выполнение текущей команды — и указать нужный путь:

img

Скрипт для обновления IP-адреса

Переименование и удаление

Переименовывать файлы можно через команду rename.

img

Скрипт для переименования

При использовании rename важно учитывать, что:

  • автоматическое переименование допустимо только в рамках одного диска или каталога;

  • переименовывать можно только по маске.

В том случае, если вам нужно удалить с компьютера ненужные файлы, вы также можете воспользоваться «батником». Для этого добавьте в «Блокнот» такие строки:

img

Скрипт для удаления

Советы по использованию BAT-файлов

«Батники» — это простой и эффективный инструмент для автоматизации задач на компьютерах с системой Windows. Больше о доступных командах можно узнать в документации Windows, а познакомиться с подборкой полезных BAT-файлов от пользователей GitHub — здесь.

Совместимость с разными версиями Windows

Несмотря на то, что «батники» используются более 40 лет и появились еще при MS-DOS, новые функции в них всегда добавлялись с сохранением обратной совместимости. Например, командный интерпретатор CMD.EXE, добавленный в системы семейства Windows NT — от Windows 2000 и далее — до сих пор поддерживает запросы к файлам и каталогам, созданным по правилам изначального интерпретатора COMMAND.COM.

Настройка BAT-файлов для работы с облачными сервисами и серверами

BAT-скрипты можно использовать для оптимизации работы с облачными сервисами. Принцип такой же, как и при работе с внутренними приложениями Windows. Например, в облаке Cloud.ru с помощью BAT-файла можно заскриптовать копирование бэкапов в объектное хранилище S3.

Заключение

Пользователи операционной сети Microsoft Windows продолжают использовать BAT-скрипты каждый день. Они позволяют не тратить время на ручное выполнение рутинных задач типа чистки временных файлов или создания бэкапов.

Конечно, BAT-файлы — это не единственное решение для автоматизации ежедневной работы в операционной системе. Например, существует PowerShell — современное кроссплатформенное решение, которое поддерживает сразу Windows, Linux и macOS и включает оболочку командной строки, скриптовый язык и платформу управления конфигурацией. Но долгосрочный успех BAT-скриптов сложно отрицать, ведь они все еще используются повсеместно.

Секрет BAT-скриптов в простоте — разобраться, как они работают, и быстро начать применять их сможет даже человек без высоких навыков в программировании. Чтобы ими пользоваться не нужно подключать никаких библиотек или заучивать дополнительные ключевые слова и знаки препинания. Достаточно один раз понять механизм создания алгоритмов и взять на вооружение небольшой список базовых команд.

Last Updated :
29 Sep, 2022

In Windows, the batch file is a file that stores commands in a serial order. The command line interpreter takes the file as an input and executes in the same order. A batch file is simply a text file saved with the .bat file extension. It can be written using Notepad or any other text editor. A simple batch file will be:

// When echo is turned off, the command prompt doesn't appear in the Command Prompt window.
ECHO OFF

// The following command writes GeeksforGeeks to the console.
ECHO GeeksforGeeks

// The following command suspends the processing of a batch program and displays the prompt.
PAUSE

After saving it with a .bat extension. Double click it to run the file. It prints shows:

 

In the above script, ECHO off cleans up the console by hiding the commands from being printed at the prompt, ECHO prints the text “GeeksforGeeks” to the screen, and then waits for the user to press a key so the program can be ceased. Some basic commands of batch file:

  • ECHO – Prints out the input string. It can be ON or OFF, for ECHO to turn the echoing feature on or off. If ECHO is ON, the command prompt will display the command it is executing.
  • CLS – Clears the command prompt screen.
  • TITLE –  Changes the title text displayed on top of prompt window.
  • EXIT – To exit the Command Prompt.
  • PAUSE – Used to stop the execution of a Windows batch file.
  • :: – Add a comment in the batch file.
  • COPY – Copy a file or files.

Types of “batch” files in Windows:

  1. INI (*.ini) – Initialization file. These set the default variables in the system and programs.
  2. CFG (*.cfg) – These are the configuration files.
  3. SYS (*.sys) – System files, can sometimes be edited, mostly compiled machine code in new versions.
  4. COM (*.com) – Command files. These are the executable files for all the DOS commands. In early versions there was a separate file for each command. Now, most are inside COMMAND.COM.
  5. CMD (*.cmd) – These were the batch files used in NT operating systems.

Lets take another example, Suppose we need to list down all the files/directory names inside a particular directory and save it to a text file, so batch script for it will be,

@ECHO OFF

// A comment line can be added to the batch file with the REM command.
REM This is a comment line.

REM Listing all the files in the directory Program files 
DIR"C:\Program Files" > C:\geeks_list.txt 

ECHO "Done!"

Now when we run this batch script, it will create a file name geeks_list.txt in your C:\ directory, displaying all the files/folder names in C:\Program Files. Another useful batch script that can be written to diagnose your network and check performance of it:

// This batch file checks for network connection problems.
ECHO OFF

// View network connection details
IPCONFIG /all

// Check if geeksforgeeks.com is reachable
PING geeksforgeeks.com

// Run a traceroute to check the route to geeksforgeeks.com
TRACERT geeksforgeeks.com

PAUSE

This script displays:

 

This script gives information about the current network and some network packet information. ipconfig /all helps to view the network information and ‘ping’ & ‘tracert’ to get each packet info. Learn about ping and traceroute here.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 7 ultimate что значит ultimate
  • Sis m672 драйвер windows 7
  • Как включить колонки на мониторе windows 10
  • Как установить драйвер nvidia вручную на windows 10
  • Gigabyte ga m57sli s4 windows 7