Как написать пакетный скрипт на Windows

Знаете ли вы, как использовать командную строку? Если вы это сделаете, вы можете написать командный файл. В простейшей форме пакетный файл (или пакетный сценарий) представляет собой список нескольких команд, которые выполняются при двойном щелчке файла. Пакетные файлы возвращаются в DOS, но все еще работают в современных версиях Windows.

Сценарии PowerShell и Bash могут быть более мощными, но пакетные файлы могут быть весьма полезны, если вам нужно выполнить основные команды Windows.

Основы пакетного файла

Пакетный файл — это просто текстовый файл, сохраненный с расширением .bat. Вы можете написать его с помощью Блокнота или более сложного текстового редактора, такого как Notepad ++, но не используйте текстовый процессор, такой как Microsoft Word.

Давайте создадим простой командный файл. Сначала откройте Блокнот. Введите в него следующие строки:

 ECHO OFF
ЭХО Hello World
PAUSE 

Затем сохраните файл, нажав Файл> Сохранить. Присвойте ему любое имя, но замените расширение файла .txt по умолчанию на расширение .bat.

Например, вы можете назвать его hello_world.bat .

Теперь у вас есть командный файл с расширением .bat. Дважды щелкните по нему, чтобы запустить его. Этот конкретный пакетный файл отключает ECHO (который очищает вывод, скрывая команды от печати в приглашении, печатает текст «Hello World» на экране, а затем ждет, пока вы нажмете клавишу, прежде чем она закончится.

Если вы не добавили PAUSE в файл, командный файл просто запустит свои команды и автоматически закроется. В этом случае он выведет «Hello World» в окно и сразу же закроет окно командной строки. Если вы хотите быстро выполнить команды, не видя вывод, вы можете опустить это. Если вы запускаете несколько команд, вы можете поместить команду PAUSE между ними.

Написание более сложного пакетного файла

Создать пакетный файл принципиально просто. Единственное, что вам нужно изменить, это то, что вы вводите в блокноте. Чтобы запустить несколько команд, вы вводите каждую из них в отдельной строке, и командный файл будет запускать каждую из них по порядку.

Например, допустим, мы хотим написать командный файл, который запускает несколько команд диагностики сети. Возможно, мы захотим запустить ipconfig/all для просмотра информации о сети, ping google.com , чтобы узнать, отвечают ли серверы Google, и tracert google.com запустить трассировку на google.com и посмотреть, есть ли какие-либо проблемы в пути.

В самой простой форме мы могли бы просто поместить все эти команды в пакетный файл, одну за другой, примерно так:

 ipconfig/all
пинг google.com
tracert google.com
PAUSE 

Когда мы запускаем этот файл, мы просто видим вывод каждой команды сразу после другой. Но это не обязательно идеальный способ написания командного файла.

Например, вы можете добавить строки комментариев. Любая строка, которая начинается с :: , является строкой комментария и не будет выполнена. Это делает их полезным способом объяснить, что происходит в файле для любого, кому вы можете дать его — или для вашего будущего себя, кто может забыть, почему вы положили туда определенную команду.

Вы также можете добавить команду «ECHO OFF» в начало файла. Обычно это добавляется в начало большинства командных файлов. Когда вы сделаете это, сами команды не будут напечатаны в командной строке, но результаты будут. Например, вы увидите сведения о сетевом подключении, но не строку «ipconfig/all». Большинство людей не хотят видеть команды, так что это может очистить вывод.

Вот как это может выглядеть:

 :: Этот пакетный файл проверяет наличие проблем с сетевым подключением.
ЭХО ВЫКЛ
:: Просмотр сведений о сетевом подключении
ipconfig/all
:: Проверьте, доступен ли Google.com
пинг google.com
:: Запустите трассировку, чтобы проверить маршрут к Google.com
tracert google.com
PAUSE 

Есть и другие направления, по которым вы можете пойти с командным файлом, как это. Например, вы можете захотеть, чтобы ваш пакетный скрипт выполнял приведенные выше команды, а затем вывел вывод в текстовый файл, который вы можете просмотреть позже. Для этого вы должны использовать оператор >> после каждой команды, чтобы добавить свои выходные данные в текстовый файл. В любом случае, поскольку мы собираемся прочитать вывод из текстового файла, мы можем опустить команду PAUSE .

 :: Этот пакетный файл проверяет наличие проблем с сетевым подключением
:: и сохраняет вывод в файл .txt.
ЭХО ВЫКЛ
:: Просмотр сведений о сетевом подключении
ipconfig/all >> results.txt
:: Проверьте, доступен ли Google.com
ping google.com >> results.txt
:: Запустите трассировку, чтобы проверить маршрут к Google.com
tracert google.com >> результаты.TXT 

После запуска приведенного выше сценария вы найдете файл с именем results.txt в той же папке, что и командный файл с выводом команд. Окно командной строки автоматически закроется, как только будет запущен пакетный файл.

Пример, который мы используем выше, основан на фактической печати информации в командной строке, чтобы пользователь мог ее прочитать. Однако многие командные файлы предназначены для неинтерактивного запуска. Например, у вас может быть командный файл, который удаляет несколько файлов или каталогов, когда вы дважды щелкаете по нему. Вам просто нужно использовать команду del для удаления файлов или команду deltree для удаления каталогов. Помните, что вы просто используете те же команды, которые запускаете в окне командной строки.

По сути, это и есть смысл большинства пакетных файлов — просто запуск нескольких команд одна за другой. Тем не менее, пакетные файлы могут быть значительно сложнее, чем это. Например, вы можете использовать операторы «IF» вместе с командой «GOTO», чтобы проверить значение чего-либо, а затем перейти к различным строкам в зависимости от результата. Это больше похоже на написание настоящей маленькой программы, чем на быстрый и грязный скрипт. Это одна из причин, почему .bat-файлы иногда называют «пакетными программами». Если вы хотите сделать что-то более сложное, вы найдете множество руководств по выполнению конкретных задач с помощью пакетного программирования в Интернете. Но теперь вы знаете основы того, как собрать простую.

Оцените статью
TutoryBird.Ru
Добавить комментарий