Рекламное объявление

Если вы много работаете с пакетными файлами Windows, ЕСЛИ заявление предлагает очень мощный способ добавить гибкость в ваши сценарии.

В этой статье вы познакомитесь с пятью основными типами операторов IF, которые вы можете использовать в пакетном файле Windows, как выглядит правильный синтаксис, и реалистичным примером для каждого из них.

Если вы готовы начать писать сценарии, давайте начнем!

1. Сравнить значения

Одна из основных вещей, которую вам обычно нужно сделать в пакетном скрипте, это сравнить два значения и следовать другому курсу действий в зависимости от сравнения.

Например, предположим, что вы хотите написать пакетный скрипт, который ежедневно проверяет размер жесткого диска вашего компьютера. Если его размер меньше 3 ГБ, вы хотите получить отчет по электронной почте с надписью «Слишком мало места на жестком диске».

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

instagram viewer
@ эхо выключено. установите DriveLimit = 300000000. for / f "usebackq delims == tokens = 2" %% x in (`wmic logicdisk, где" DeviceID = 'C:' "get FreeSpace / format: value`), установите FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Если% FreeSpace% GTR% DriveLimit% (Echo) Свободного места достаточно. ) еще (Эхо Недостаточно свободного места. )

WMIC - это компонент Windows Management Instrumentation, который поставляется с набором команд, которые вы можете использовать для получения информации о ПК. Вот как команда «wmic» в этом сценарии вызывает пространство «логического диска» и помещает его в переменную FreeSpace. Теперь вы можете просто заменить строку «Эхо недостаточно места» на пустую команду электронной почты, чтобы отправить вам предупреждение.

Наконец, настройте этот сценарий как пакетное задание Windows, запускаемое ежедневно.

Если вы никогда раньше не использовали blat, у нас есть статья, которая показывает вам как настроить блат. Не знакомы с настройкой запланированных заданий? Мы напишем вам статью о как настроить запланированные задачи Windows 4 скучных задач, которые можно автоматизировать с помощью планировщика задач WindowsВаше время слишком ценно, чтобы тратить его на повторяющиеся задания. Позвольте нам показать вам, как автоматизировать и планировать задачи. У нас также есть несколько отличных примеров. Подробнее .

2. Сравнение строк

Еще одно ценное сравнение IF, которое вы можете сделать в пакетном задании: сравнивая строки.

В следующем примере вы увидите, как проверить версию Windows с помощью пакетного задания. Затем вы можете сравнить это с ожидаемой версией Windows.

Некоторые варианты использования этого сценария могут использоваться для аудита ИТ, когда вам нужно быстро запустить сценарий и убедиться, что текущая операционная система является самой последней, или требуется ли ее обновление.

Вот как выглядит этот скрипт.

@ эхо выключено. для / f "токенов = 4-5 разделов =. "%% i in ('ver') установить VERSION = %% i. %% j. if "% version%" == "6.0" отражают Windows Vista. если "% version%" == "6.1" повторить Windows 7. если "% version%" == "6.2" повторить Windows 8. если "% version%" == "6.3" повторить Windows 8.1. если "% version%" == "10.0" отражают Windows 10. 

Вот как выглядит вывод этого скрипта.

Пакетный файл, Windows, Программирование

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

3. Проверьте, существует ли файл

Еще одна полезная ситуация, когда оператор IF в командном файле проверить наличие файла данных.

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

Затем пакетное задание может либо скопировать этот файл в другое место, где его можно обработать, либо запустить какой-либо сценарий Windows, который обрабатывает файл, в выходной файл Excel.

(Мы писали в прошлом о том, как использовать скрипты Windows для обработки данных в файл Excel 5 полезных сценариев VB Windows для автоматизации использования компьютераОт мониторинга веб-сайтов до системных отчетов - узнайте, как автоматизировать все эти замечательные сценарии VB, которые можно кодировать в Windows прямо сейчас. Подробнее ; немного хорошего справочного чтения.)

Использование пакетного файла, чтобы проверить, существует ли файл в каталоге, быстро и легко. Вот как выглядит этот скрипт.

@ эхо выключено. если существует c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) иначе (файл rem не существует. )

Сравнение IF EXISTS полезно для многих вещей.

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

4. Проверьте, не выполнена ли команда

Аспект пакетного файла сценариев, который используют слишком мало ИТ-специалистов или программистов проверка на ошибки.

Существует множество пакетных заданий, выполняющих важные ИТ-задачи, такие как резервное копирование важных файлов или выполнение операций копирования файлов. Когда эти пакетные задания терпят неудачу, системы отказывают, и люди замечают.

Гораздо умнее получать оповещения, когда ваше пакетное задание не выполнит команду до люди начинают замечать Таким образом, вы можете решить проблему заблаговременно.

Вы можете сделать это, используя переменную% errorlevel%, которую большинство приложений и команд возвращают после запуска.

Все, что вам нужно сделать, это следовать вашей команде командой IF% ERRORLEVEL%. Если приложение или команда вернули ноль, все в порядке. Если нет, то вам нужно отправить себе электронное письмо.

@ эхо выключено. xcopy C: \ somefolder E: \ backupfolder. IF% ERRORLEVEL% NEQ 0 

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

Если вы предпочитаете использовать оператор IF для проверки конкретных кодов ошибок, Windows предлагает довольно обширный список кодов ошибок.

5. Проверьте отсутствие параметров

Последний полезный оператор IF - это не конкретная команда, а проверка того, что сценарий получил соответствующие входные параметры.

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

Очевидно, что вы не можете правильно выполнить сценарий без указания пути, поэтому вы можете поместить оператор IF в начало сценария, чтобы убедиться, что оба параметра были введены.

Вот как это выглядит.

@ эхо выключено. ЕСЛИ [% 1] == [] ( GOTO sub_message. ) ELSE ( xcopy% 1 E: \ backupfolder. ) GOTO EOF.: Sub_message. эхо Вы забыли указать свой путь.: ВФ.

Если вы никогда ранее не использовали параметры в пакетных сценариях, символ процента, за которым следует число, представляет переменную параметра. % 1 - первый параметр,% 2 - второй, и так далее.

Пакетные работы могут быть мощными

Многие люди начинают использовать пакетные задания для простых задач, которые должны выполняться последовательно. С помощью операторов IF можно добавить гораздо больше интеллекта в ваши сценарии.

Конечно, если вы действительно хотите подняться на ступеньку выше, вы можете рассмотреть VBA с нашим руководством по создание вашего первого приложения VBAили, может быть, даже научиться программированию на Python.

Вы можете часто использовать более продвинутые языки программирования, как эти, или научиться использовать PowerShell 5 причин, по которым вы должны использовать PowerShell вместо пакетных скриптовPowerShell - это то, что вы получите, если пересечете командную строку с помощью пакетных сценариев, добавите некоторые дополнительные функции и поднимете все это на несколько ступеней. Вот несколько причин, почему вы должны попробовать это. Подробнее , для выполнения многих тех же задач, для которых вы сейчас используете пакетные задания.

Райан имеет степень бакалавра в области электротехники. Он 13 лет проработал в области автоматизации, 5 лет - в сфере информационных технологий, а сейчас - инженер приложений Бывший управляющий редактор MakeUseOf, он выступал на национальных конференциях по визуализации данных и был представлен на национальном телевидении и радио.