Что такое .bat файл — gpkiselev.ru

Что такое .bat файл

Что такое .bat файл?

Файл с расширением .bat - это пакетный скрипт Windows, который выполняет последовательность команд в командной строке (CMD). Подходит для автоматизации рутинных задач: запуск программ, копирование файлов, очистка папок и т.д.

Как создать .bat файл

  • 1. Откройте Блокнот.

  • 2. Напишите команды.

  • 3. Сохраните как "script.bat" - выберите "Все файлы" и кодировку ANSI или UTF-8.

  • 4. Дважды кликните - скрипт запустится.

Базовые команды в .bat

  • echo [текст] - выводит текст на экран.

  • echo off - отключает отображение команд (часто пишется как @echo off в начале скрипта).

  • pause - приостанавливает выполнение до нажатия клавиши.

  • cls - очищает экран терминала.

  • rem [комментарий] - комментарий (игнорируется интерпретатором).

  • :: - альтернатива rem, работает быстрее при большом количестве строк.

  • exit - завершает выполнение скрипта.

  • exit /b [код] - завершает выполнение подпрограммы или возвращает код ошибки.

  • title [текст] - меняет заголовок окна CMD.

  • color XY - устанавливает цвет фона (X) и текста (Y), например: color 0a - чёрный фон, светло-зелёный текст.

  • mode con lines=30 cols=80 - устанавливает размер окна консоли.

Переменные

  • set имя=значение - создаёт переменную (без пробелов вокруг =).

  • echo %имя% - выводит значение переменной.

  • set /p name=Введите имя: - запрашивает ввод от пользователя.

  • set /a result=5+3 - выполняет арифметическую операцию (поддерживает +, -, *, /, %).

  • set "путь=C:\Мои файлы" - безопасное присвоение с кавычками (избегает проблем с пробелами).

  • set - показывает все текущие переменные окружения.

  • echo %USERNAME% - имя текущего пользователя.

  • echo %USERPROFILE% - путь к домашней папке (напр. C:\Users\Иван).

  • echo %CD% - текущая директория.

  • echo %DATE%, echo %TIME% - текущие дата и время.

  • setlocal ... endlocal - ограничивает область действия переменных.

Работа с путями и окружением

  • %~dp0 - путь к папке, где находится .bat файл (включая слеш в конце). Очень полезно для портабельных скриптов.

  • %~n0 - имя самого .bat файла без расширения.

  • %1, %2, %* - аргументы, переданные в скрипт при запуске.

  • shift - сдвигает аргументы: %2 становится %1, %3 → %2 и т.д.

  • call :subroutine - вызов подпрограммы внутри скрипта.

  • goto :label - переход к метке (например, :start).

Проверка условий и ошибок

  • if exist файл.txt (echo Есть) else (echo Нет) - проверяет существование файла.

  • if not exist папка\ (mkdir папка) - создаёт папку, если её нет.

  • if errorlevel 1 echo Ошибка! - проверяет код возврата предыдущей команды.

  • if "%1"=="" echo Не передан аргумент & exit /b 1 - проверка наличия аргумента.

  • if defined VAR echo Переменная задана - проверяет, определена ли переменная.

Запуск программ и управление

  • start "" "C:\Путь\программа.exe" - запускает программу в новом окне (пустые кавычки - заглушка для заголовка).

  • start /wait setup.exe - запускает и ждёт завершения (полезно в установочных скриптах).

  • tasklist | findstr "chrome" - проверяет, запущен ли процесс.

  • taskkill /im notepad.exe /f - принудительно завершает процесс по имени.

  • net start "Служба" - запускает службу Windows.

  • net stop "Служба" - останавливает службу.

Обработка аргументов

@echo off
if "%1"=="" (
    echo Использование: %0 [имя_файла]
    exit /b 1
)
echo Обрабатываю файл: %1

Пример: Цикл по файлам

for %%f in (*.log) do (
    echo Обрабатываю: %%f
    move "%%f" "Архив\"
)

Пример: Логирование

echo [%DATE% %TIME%] Скрипт запущен >> log.txt
ping ya.ru >> log.txt
if errorlevel 1 echo ОШИБКА! >> log.txt

Условия (if / else)

Пример:

if "%username%"=="Admin" (
    echo Привет, администратор!
) else (
    echo Привет, %username%!
)

Сравнение строк и чисел:

  • == - равно.

  • NEQ - не равно.

  • LSS - меньше.

  • GTR - больше.

Циклы (for)

Перебор файлов:

for %%f in (*.txt) do (
    echo Обрабатываю: %%f
)

Цикл по числам (PowerShell лучше, но можно):

set i=0
:loop
if %i% LSS 5 (
    echo Итерация: %i%
    set /a i+=1
    goto loop
)

Полезные практики

  • start [программа] - запускает программу (например, start notepad.exe).

  • call другой_скрипт.bat - вызывает другой .bat файл из текущего.

  • timeout /t 5 - пауза на 5 секунд.

  • xcopy /s /y C:\src D:\backup - копирует папку с подпапками.

  • del *.tmp /q - удаляет все .tmp файлы без подтверждения.

Пример: Резервное копирование

@echo off
echo Запуск резервного копирования...
xcopy "C:\Мои документы\*" "D:\Backup\" /s /e /y
echo Готово!
pause

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

@echo off
echo Очистка Temp...
del "%temp%\*" /q /s
echo Временные файлы удалены.
pause

Безопасность и советы

  • Запускайте .bat файлы с осторожностью - они могут выполнять любые команды.
  • Тестируйте скрипты в безопасной папке перед использованием.
  • Используйте echo on для отладки.
  • Для сложных задач лучше использовать PowerShell (.ps1).
  • Чтобы запустить .bat от имени администратора - правой кнопкой → "Запуск от имени администратора".

Совет: Сохраняйте свои скрипты в папке C:\Scripts и добавьте её в PATH, чтобы запускать из любого места.

Скопировано:

← К списку

📱 Поделиться страницей:

Ссесия, Гость 23.06.2026