Пакетний файл

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Пакетний файл
Розширення файлу: .bat, .cmd, .btm
MIME-тип: application/bat/x-bat/x-msdos-program, text/plain
Тип формату: Скриптова мова

Пакетний файл є свого роду файлом сценарію(скриптом) в DOS, OS/2 і Windows. Він містить набір команд, які виконуються командним інтерпретатором і зберігається як звичайний текстовий файл. Пакетний файл може містити команди, які інтерпретатор приймає в інтерактивному режимі і надає змогу створення умовних/безумовних переходів та циклів всередині пакетного файлу, наприклад «if», «for», «goto» та мітки.

Подібно до JCL та інших мов для мейнфреймів, пакетні файли були створені для полегшення виконання однотипних дій через створення сценаріїв (скриптів) для їх автоматизації. Коли запускається пакетний файл, shell-програма (зазвичай COMMAND.COM або cmd.exe) зчитує та виконує його команди рядок за рядком.[1][2]

Розширення файлу .bat використовується в DOS та Windows. Windows NT та OS/2 також можуть мати розширення .cmd. Пакетні файли в інших системах мають і інші розширення, наприклад .btm в 4DOS, 4OS2, 4NT.

Особливості виконання пакетних файлів змінились. Частка особливостей, що описані у статті справджуються для усіх пакетних файлів, а решта тільки для певних версій.

ПРИКЛАД:

Щоб створити і заповнити файл прямо з командного рядка можна в його домашній теці створити BAT-файл (наприклад C.BAT) з таким текстом:

@ECHO OFF

ECHO INPUT TEXT(FOR EXIT PRESS F6):

COPY CON %1

,і зберегти цей файл.Далі відкрийте командний рядок і введіть С [ім'я файлу, який ви бажаєте створити, не забувши вказати розширення файлу(наприклад TEXT.TXT (створити текстовий файл TEXT) або SCRIPT.BAT(пакетний файл SCRIPT) без квадратних дужок].Файл буду знаходитися в домашній теці командного рядка. Щоб закінчити введення натисніть F6+Enter .


Приклад програми:

 echo off
 title Script
 color 0a
 cls
 echo Copyright
 set /p var=Script:
 if %var%==OK goto h
 exit

 :h
 echo TEST

Програма друкує на терміналі повідомлення "Copyright" й чекає, що надрукує користувач. Якщо напише "OK", то програма у відповідь надрукує "TEST", в інших випадках — нічого.

Цикли[ред. | ред. код]

Синтаксис пакетного файлу дозволяє організовувати два виду циклів:

  • числовий — вказується початок, кінець та крок збільшення числа. Приклад:
 for /l %%i in (1, 1, 10) do echo %%i
  • послідовне сканування об'єктів — вказується список, з якого послідовно брати по одному об'єкту. Зазвичай, це файли з теки. Приклад:
 for /r c:\tmp %%i in (*.htm) do ren %%i %%~ni.html
  • в цьому прикладі:
    • ключ /r — вказує, що потрібно просканувати всю теку c:\tmp та всі її вкладені теки;
    • вираз (*.htm) — шукаємо виключно файли з розширенням .htm
    • оператор do — вказує що саме потрібно зробити з кожним найденим файлом. Якщо команд декілька, то вони об'єднуються дужками. Якщо потрібно не тільки змінити назву файлу, а ще й попередньо вилучити, якщо вже такий існує:
 for /r c:\tmp %%i in (*.htm) 
  do ( 
        del %%~ni.html
        ren %%i %%~ni.html 
     )

Змінні в командних файлах[ред. | ред. код]

Ім'я змінної має бути одна латинська буква, чутливі до регістра. Тобто %%i та %%I різні змінні.

Інтерпретатор розрізняє як виконується команда:

  • якщо безпосередньо з терміналу, то змінна має починатись з одного знаку %;
  • якщо з командного файлу, то з двох — %%.

Якщо змінна це файл, то модифікатори дозволяють визначити, що саме буде означати зміна:

  • тільки назва файлу — %%~ni
  • розширення файлу — %%~xi
  • повна назва файлу разом із шляхом, якщо потрібно, то екранується — %%~fi
  • тільки шлях до файлу — %%~pi
  • розмір файлу — %%~zi

Версії[ред. | ред. код]

DOS[ред. | ред. код]

В MS-DOS пакетний файл запускається командного рядка, потрібно ввести ім'я файлу разом з необхідними параметрами та натиснути «Enter». Коли завантажується MS-DOS, файл AUTOEXEC.BAT виконується автоматично, так що будь-які команди, які повинні виконуватися, щоб налаштувати середовище MS-DOS для використання можуть бути розміщені в цьому файлі. Користувач, використовуючи файл autoexec, може встановлювати та змінювати системний час та дату, ініціалізувати середовище MS-DOS, завантажувати будь-які резидентні програми та ініціалізувати мережеві підключення.

Примітки[ред. | ред. код]

  1. Using batch files: Scripting; Management Services. Technet.microsoft.com. 21 січня 2005. Архів оригіналу за 26 червня 2015. Процитовано 30 листопада 2012.
  2. File extension BAT - How to open. File-extensions.org. 8 серпня 2006. Архів оригіналу за 9 травня 2015. Процитовано 30 листопада 2012.