Як написати пакетний скрипт на Windows
Чи знаєте ви, як користуватися командним рядком? Якщо ви це зробите, ви можете написати пакетний файл. У найпростішій формі пакетний файл (або пакетний скрипт) - це список з декількох команд, які виконуються під час подвійного клацання на файлі. Пакетні файли йдуть до DOS, але все ще працюють на сучасних версіях Windows.
Сценарії PowerShell і сценарії Bash можуть бути більш потужними, але пакетні файли все ще можуть бути корисними, якщо потрібно запустити основні команди Windows.
Основи пакетного файлу
Пакетний файл - це просто текстовий файл, збережений з розширенням .bat. Ви можете написати один за допомогою Notepad або більш просунутий текстовий редактор, наприклад Notepad ++, але не використовуйте текстовий процесор, як Microsoft Word.
Створимо простий пакетний файл. Спочатку відкрийте Блокнот. Введіть у нього такі рядки:
ECHO OFF ECHO Привіт світ PAUSE
Далі збережіть файл, натиснувши Файл> Зберегти. Дайте йому будь-яке ім'я, яке вам подобається, але заміните розширення .txt за замовчуванням розширенням .bat.
Наприклад, ви можете назвати його hello_world.bat
.
Тепер у вас є пакетний файл з розширенням .bat. Двічі клацніть його, щоб запустити його. Цей пакетний файл встановлює вимикач ECHO (який очищає вихідні дані, приховуючи команди від друку під час виклику, друкує текст "Hello World" на екрані, а потім чекає, доки не натиснути клавішу, перш ніж вона закінчиться..
Якщо ви не додали ПАУЗА
до файлу пакетний файл просто запустить його команди, а потім автоматично закриється. У такому випадку він надрукує вікно «Hello World», а потім негайно закриє вікно командного рядка. Якщо потрібно швидко виконати команди, не бачачи виводу, ви можете пропустити це. Якщо ви запускаєте кілька команд, ви можете розмістити ПАУЗА
між ними.
Написання більш складного пакетного файлу
Принципово просто створити пакетний файл. Єдине, що потрібно змінити, це те, що ви вводите в Блокнот. Щоб запустити декілька команд, ви вводите кожну з них на окремому рядку, а командний файл запускатиметься кожен.
Наприклад, скажімо, ми хочемо написати пакетний файл, який виконує кілька команд мережевої діагностики. Ми можемо захотіти побігти ipconfig / all
, щоб переглянути інформацію про мережу, ping google.com
щоб перевірити, чи відповідають сервери Google, та tracert google.com
щоб запустити traceroute на google.com і подивитися, чи є якісь проблеми на шляху.
У найосновнішій формі ми можемо просто помістити всі ці команди в пакетний файл, один за іншим, так:
ipconfig / все пінг google.com tracert google.com PAUSE
Коли ми запускаємо цей файл, ми побачимо вихід кожної команди відразу за іншим. Але це не обов'язково є ідеальним способом написання пакетного файлу.
Наприклад, можна додати рядки коментарів. Будь-яка лінія, що починається з a ::
є рядком коментарів і не буде виконано. Це робить їх корисним способом пояснити, що відбувається у файлі, для тих, кого ви можете надати - або для вашого майбутнього я, хто може забути, чому ви ввели ту чи іншу команду.
Ви також можете додати команду “ECHO OFF” до початку файлу. Зазвичай це додано до початку більшості пакетних файлів. Коли ви робите це, самі команди не будуть надруковані в командний рядок, але результати будуть. Наприклад, ви побачите деталі мережного підключення, але не рядок "ipconfig / all". Більшість людей не бажають бачити команди, так що це може очистити вихід.
Ось так це може виглядати:
:: Цей пакетний файл перевіряє наявність проблем з мережним підключенням. ECHO OFF :: Переглянути дані про мережеве підключення ipconfig / all :: Перевірте, чи Google.com доступний ping google.com :: Запустіть traceroute, щоб перевірити маршрут до Google.com tracert google.com PAUSE
Існують і інші напрямки, у яких можна виконати командний файл. Наприклад, вам може знадобитися, щоб ваш пакетний скрипт виконував наведені вище команди, а потім скидав вихідні дані до текстового файлу, який можна переглянути пізніше. Для цього потрібно скористатися >>
Оператор після кожної команди додасть свій висновок до текстового файлу. Оскільки ми збираємося прочитати вихідний текст з текстового файлу, ми можемо пропустити ПАУЗА
команду.
:: Цей пакетний файл перевіряє наявність проблем з мережевим підключенням :: та зберігає вихідні дані у файлі .txt. ECHO OFF :: Перегляд деталей мережного підключення ipconfig / all >> results.txt :: Перевірте, чи є Google.com доступним пінг google.com >> results.txt :: Виконайте traceroute, щоб перевірити маршрут до Google.com tracert google. com >> results.txt
Після запуску вищезазначеного сценарію ви знайдете файл з назвою results.txt у тій же папці, що й пакетний файл з виходом команд. Вікно командного рядка автоматично закриється після запуску пакетного файлу.
Наведений вище приклад спирається на фактичну друк інформації в командний рядок, щоб користувач міг його прочитати. Тим не менш, багато командних файлів розроблено для запуску неінтерактивно. Наприклад, у вас може бути пакетний файл, який видаляє кілька файлів або каталогів, коли ви двічі клацнете на ньому. Вам потрібно просто скористатися del
команда для видалення файлів або deltree
команда для видалення каталогів. Пам'ятайте, що ви використовуєте ті самі команди, що й у вікні командного рядка.
В принципі, це точка більшості пакетних файлів - просто запуск декількох команд один за одним. Проте пакетні файли можуть бути значно складнішими. Наприклад, ви можете використовувати оператори «IF» разом з командою «GOTO», щоб перевірити значення чогось, а потім перейти до різних ліній залежно від результату. Це більше схоже на написання реальної невеликої програми, ніж швидкий і брудний сценарій. Це одна з причин, чому файли .bat іноді називаються "пакетними програмами". Якщо ви хочете зробити щось більш складне, ви знайдете безліч посібників для виконання конкретних речей з пакетним програмуванням онлайн. Але тепер, ви знаєте основи, як кинути простий один разом.