Як використовувати мову пакетних файлів Microsoft
Пакетні файли - це команди DOS упаковані разом. В Unix-подібних системах вони відомі як shell-скрипти і використовують абсолютно інший синтаксис. Користувачам ранніх версій Windows потрібно було використовувати пакетні файли (autoexec.bat), щоб призначити букву диска для CD-ROM, що, в свою чергу, було необхідно для установки Windows. Тепер пакетні файли не так важливі, проте вони підтримуються більш новими версіями Windows.
У Windows XP / 2000 +, пакетні файли (* .bat) виконуються в спеціальному вікні (так звана Командна Рядок), яке створене програмою c: windows system32 cmd.exe (або command.com в деяких випадках). Команди можна вводити по одній, а можна перерахувати послідовно у файлі, для чого і потрібна мова пакетних файлів. У цій статті ми розповімо, як створювати і запускати пакетні файли і як приклад наведемо простий скрипт для резервного копіювання.
Кроки
1
Відкрийте текстовий редактор. Ви будете натискати кнопки AZ / 0-9 /, символи (! $ | Тощо) і Enter. Більшість команд не звертають уваги на верхній / нижній регістр, тому не турбуйтеся про CAPS LOCK (або навіть CaPs LoCk). Кожна команда з її параметрами починається з нового рядка. Відкрийте командний рядок (cmd.exe), щоб перевіряти команди. Пересуньте вікна так, щоб ви могли бачити, одночасно, командний рядок і текстовий редактор.
Створіть пакетний файл
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
Попрактикуйтесь в копіюванні і вставці тексту на цьому коді:
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
- echo Ви обрали копіювання тільки НОВИХ файлів. Натисніть будь-яку кнопку, щоб продовжити або ctrl-z для виходу.
- приклад:
- 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". Або знайдіть її в підміню <Стандартные> Меню Пуск.
- Кілька файлів для тестового резервного копіювання. Почніть з невеликої директорії, з малою кількістю файлів.