Як використовувати мову пакетних файлів Microsoft

Пакетні файли - це команди DOS упаковані разом. В Unix-подібних системах вони відомі як shell-скрипти і використовують абсолютно інший синтаксис. Користувачам ранніх версій Windows потрібно було використовувати пакетні файли (autoexec.bat), щоб призначити букву диска для CD-ROM, що, в свою чергу, було необхідно для установки Windows. Тепер пакетні файли не так важливі, проте вони підтримуються більш новими версіями Windows.


У Windows XP / 2000 +, пакетні файли (* .bat) виконуються в спеціальному вікні (так звана Командна Рядок), яке створене програмою c: windows system32 cmd.exe (або command.com в деяких випадках). Команди можна вводити по одній, а можна перерахувати послідовно у файлі, для чого і потрібна мова пакетних файлів. У цій статті ми розповімо, як створювати і запускати пакетні файли і як приклад наведемо простий скрипт для резервного копіювання.

Кроки

  1. 1

    Відкрийте текстовий редактор. Ви будете натискати кнопки AZ / 0-9 /, символи (! $ | Тощо) і Enter. Більшість команд не звертають уваги на верхній / нижній регістр, тому не турбуйтеся про CAPS LOCK (або навіть CaPs LoCk). Кожна команда з її параметрами починається з нового рядка. Відкрийте командний рядок (cmd.exe), щоб перевіряти команди. Пересуньте вікна так, щоб ви могли бачити, одночасно, командний рядок і текстовий редактор.

Створіть пакетний файл
  1. 1

    У цій секції ми проведемо вас за ручку через весь процес створення пакетного файлу. Якщо ви хочете відразу подивитися на готовий скрипт, просто перейдіть до відповідної секції.

Зазвичай починають командою <@echo off>, так як вона запобігає висновок виконуваних команд і, тим самим, зменшує кількість непотрібної інформації на екрані. Наберіть:

echo off

Натисніть Enter. Натискайте Enter після введення кожної команди. Тепер давайте привітаємо користувача. Наберіть:

echo Вас вітає скрипт резервного копіювання!

Не забули натиснути Enter? Відмінно. Тепер виведемо порожній рядок, щоб виділити заголовок. Наберіть:

echo.

І знову Enter, звичайно ж. Тепер займемося справою. Наберіть:

choice / C: FNQ / N Виберіть [F] - Повне копіювання або [N] - Тільки нових файлів. Натисніть [Q] або [CTRL-Z] для виходу.

Це дає користувачеві вибір. Він може натиснути F або N, або ж Q або CRTL-Z, що скасує виконання скрипта. Тепер напишемо команди для кожного варіанту. Наберіть:

IF errorlevel 3 goto end
IF errorlevel 2 goto small_backup
IF errorlevel 1 goto full_backup

Пішла робота! Якщо користувач натисне Q, програма поверне "3" і перейде до секції "end" (кінець). Якщо ж він натисне N, програма поверне "2" і перейде до секції "small_backup" (маленьке резервне копіювання). І нарешті, якщо він натисне F, програма поверне "1" і перейде до секції "full_backup" (повне резервне копіювання). "Errorlevel" це власне не помилка, а просто такий спосіб отримати відповідь команди CHOICE.

# Створимо секції про які ми говорили вище. Наберіть:

 : Small_backup
echo.
echo.
echo Ви обрали копіювання тільки НОВИХ файлів. Натисніть будь-яку кнопку, щоб продовжити або ctrl-z для виходу.
pause> nul
xcopy c: mydirectory d: mybackup / s / m / e
goto end
 : Full_backup
echo.
echo.
echo Ви обрали копіювання ВСІХ файлів. Натисніть будь-яку кнопку, щоб продовжити або ctrl-z для виходу.
pause> nul
xcopy c: mydirectory d: mybackup / s / e

goto end

 : End
exit

Пропозиція: Створіть директорії, згадані вище, і скопіюйте в них кілька тестових файлів. Пізніше ви можете поміняти ці імена на справжні, Мої документи, наприклад.

# От і все! У Блокноті, збережіть файл під , а потім двічі клацніть по ньому мишкою.

Повний код пакетного файлу
  1. 1

    Попрактикуйтесь в копіюванні і вставці тексту на цьому коді:

echo off echo Вас вітає скрипт резервного копіювання!
echo.
choice / C: FN / N Виберіть [F] - Повне копіювання або [N] - Тільки нових файлів. Натисніть [Q] або [CTRL-Z] для виходу.
IF errorlevel 3 goto end
IF errorlevel 2 goto small_backup
IF errorlevel 1 goto full_backup
: Small_backup
echo.
echo.
echo Ви обрали копіювання тільки НОВИХ файлів. Натисніть будь-яку кнопку, щоб продовжити або ctrl-z для виходу.
pause> nul
xcopy c: mydirectory d: mybackup / s / m / e
goto end
: Full_backup
echo.
echo.
echo Ви обрали копіювання ВСІХ файлів. Натисніть будь-яку кнопку, щоб продовжити або ctrl-z для виходу.
pause> nul
xcopy c: mydirectory d: mybackup / s / e
goto end
: End


exit

Коротка довідка по синтаксису

  • ECHO> Виведення на екран.
    • приклади:
      • echo off (Відключає висновок на екран самих команд, виводиться тільки їх результат)
      • echo Hello. (Виводить `Hello.`echo Off на це не діє.)
      • echo. (Виводить порожню лінію)



  • CLS> Очищення екрану.
  • MKDIR> Створення директорії.
    • приклад:
      • mkdir d: backup (Створює директорію на диску D з ім`ям backup).
  • XCOPY> Копіює файли і папки.
    • приклади:
      • xcopy c: file.txt d: file.txt (Копіює файл з диска C на диск D).
      • xcopy c: mydirectory d: mydirectory / i (Параметр `/ i` вказує на те, що якщо в шляху до файлу немає розширення - це директорія).
      • xcopy c: my documents *. * d: backup my documents / s / i (Параметр `/ s` вказує, що потрібно копіювати всі піддиректорії).


  • CHOICE> Зчитує натиснуту на клавіатурі клавішу (використовується при створенні меню).
    • приклад:
      • choice / C: FN / N Виберіть [F] - Повне копіювання або [N] - Тільки нових файлів. (Дає користувачеві вибір).
  • PAUSE> Припиняє виконання пакетного файлу до натискання будь-якої клавіші (крім ctrl-z, ця комбінація припиняє виконання).
    • приклад:
      • echo Ви обрали копіювання тільки НОВИХ файлів. Натисніть будь-яку кнопку, щоб продовжити або ctrl-z для виходу.
        pause> nul
  • REM> Перетворює рядок в коментар, а коментарі ігноруються при виконанні.
    • приклад:
      • REM format c: / u / q

Поради

  • Закриті вікна: Якщо ви хочете, щоб вікно скрипта закрилося після його завершення, залиште все як є. Якщо ж ви хочете залишити вікно відкритим і вводити в ньому інші команди, замініть команду в останній секції на - так вікно залишиться відкритим.
  • Поточна директорія: Якщо програма звертається до файлів в тій же директорії, що і вона сама, то вам не потрібно вказувати повний шлях до файлу. Тобто якщо пакетний файл знаходитися на диску C: ви можете звертатися до c: temp просто написавши: : Xcopy temp *. * D: temp / s / m

Попередження

  • Хоча команди наведені тут безпечні, використання системних команд в пакетних файлах може призвести до краху системи.
  • Команда CHOICE не включена ні в Windows XP Home ні в Professional і її використання призведе до передчасному завершенню скрипта

Що вам знадобиться

  • Текстовий редактор, наприклад, Блокнот, або більш просунутий, наприклад, HTML-Kit. Програми, які включає в файл додаткову інформацію, наприклад форматування, не підходять (до них відноситься і MS Word).
  • Командний рядок. Натисніть <Пуск><Выполнить>, і наберіть "cmd". Або знайдіть її в підміню <Стандартные> Меню Пуск.
  • Кілька файлів для тестового резервного копіювання. Почніть з невеликої директорії, з малою кількістю файлів.