BAT-файлы
Текстовые файлы с расширением .bat, в которых записан список команд Windows, выполняемых интерпретатором cmd.exe по порядку.
Что такое BAT-файл
BAT-файл (батник, от англ. batch — «пакет») — обычный текстовый файл с расширением .bat или .cmd, внутри которого построчно записаны команды Windows. При запуске cmd.exe читает файл и выполняет команды одну за другой, как если бы вы набирали их вручную.
Смысл в одном слове — повторяемость. Всё, что вы делаете в командной строке дважды, стоит записать в батник: резервное копирование, запуск сервера, чистка временных файлов. Создать его можно в «Блокноте»: набрать команды и сохранить как script.bat, выбрав тип «Все файлы» (иначе получится script.bat.txt). Запуск — двойным кликом или из командной строки.
Простой пример
@echo off
rem Резервная копия папки проекта с датой в имени
set SOURCE=C:\projects\myapp
set BACKUP_DIR=D:\backups
set STAMP=%date:~-4%-%date:~3,2%-%date:~0,2%
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"
robocopy "%SOURCE%" "%BACKUP_DIR%\myapp-%STAMP%" /E /R:2 /W:5
if errorlevel 8 (
echo Ошибка копирования, код %errorlevel%
exit /b 1
)
echo Готово: %BACKUP_DIR%\myapp-%STAMP%
pause
Что здесь важно:
@echo off— не печатать сами команды, только их вывод. Собака в начале прячет и саму эту строкуrem— комментарий%VAR%— подстановка переменной,set— присвоение%errorlevel%— код возврата прошлой команды, 0 обычно означает успехpause— «Нажмите любую клавишу»: без него окно закроется, и вы не увидите ошибку
Аргументы командной строки
@echo off
if "%~1"=="" (
echo Использование: deploy.bat ^<имя-сервера^>
exit /b 1
)
echo Разворачиваю на %~1
%1...%9 — позиционные аргументы, %* — все сразу. Тильда в %~1 снимает кавычки с аргумента.
.bat или .cmd
Оба выполняются одним и тем же cmd.exe, и в 99% случаев разницы нет. .bat достался в наследство от MS-DOS, .cmd появился в линейке Windows NT и ведёт себя чуть аккуратнее с кодом возврата в некоторых встроенных командах. Для нового скрипта берите .cmd, для совместимости со старыми инструкциями — .bat.
Аналоги в других системах
| Windows | Linux / macOS | Комментарий |
|---|---|---|
.bat / .cmd |
.sh (Bash) |
скрипт оболочки |
@echo off |
#!/bin/bash |
служебная строка в начале |
%VAR% |
$VAR |
переменная |
rem |
# |
комментарий |
| Планировщик заданий | cron, systemd-таймеры |
запуск по расписанию |
Когда батника уже мало
Синтаксис .bat унаследован от MS-DOS и очень быстро упирается в потолок: нет нормальных функций, массивов и работы с JSON, а отложенное раскрытие переменных внутри блоков if и for требует setlocal enabledelayedexpansion и остаётся источником загадочных багов. Если скрипт перевалил за пару десятков строк или ему нужно разбирать вывод команд — переписывайте на PowerShell. Он умеет то же самое, но с объектами, функциями и обработкой ошибок.
Связанные термины
- CMD / командная строка — интерпретатор, который выполняет батники
- PowerShell — современная замена BAT-скриптам в Windows
- Bash — аналог батников в Linux
- CLI — интерфейс командной строки как понятие
Готовы запустить GPU-задачу?
Запустить GPU-сервер