5 операторов IF, которые можно использовать для создания более умных пакетных сценариев Windows

5 операторов IF, которые можно использовать для создания более умных пакетных сценариев Windows

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





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





Если вы готовы приступить к написанию сценариев, приступим!





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

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

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



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

@echo off
set DriveLimit=300000000
for /f 'usebackq delims== tokens=2' %%x in (`wmic logicaldisk where 'DeviceID='C:'' get FreeSpace /format:value`) do set FreeSpace=%%x
Echo FreeSpace='%FreeSpace%'
Echo Limit='%DriveLimit%'
If %FreeSpace% GTR %DriveLimit% (
Echo There is enough free space.
) else (
Echo Not enough free space.
)

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





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

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





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

Еще одно ценное сравнение IF, которое вы можете провести в пакетном задании, - это сравнение строк .

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

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

Вот как выглядит этот сценарий.

@echo off
for /f 'tokens=4-5 delims=. ' %%i in ('ver') do set VERSION=%%i.%%j
if '%version%' == '6.0' echo Windows Vista.
if '%version%' == '6.1' echo Windows 7
if '%version%' == '6.2' echo Windows 8
if '%version%' == '6.3' echo Windows 8.1
if '%version%' == '10.0' echo Windows 10.

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

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

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

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

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

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

(Мы писали в прошлом о том, как использовать скрипты Windows для обработки данных в файл Excel ; немного хорошего фонового чтения.)

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

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.exe
cscript LoadToExcel.vbs
) else (
rem file doesn't exist
)

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

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

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

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

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

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

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

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

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

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

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

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

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

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

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

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

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof

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

Пакетные задания могут быть эффективными

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

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

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

Делиться Делиться Твитнуть Эл. адрес Удалите эти файлы и папки Windows, чтобы освободить место на диске

Вам нужно очистить дисковое пространство на вашем компьютере с Windows? Вот файлы и папки Windows, которые можно безопасно удалить, чтобы освободить место на диске.

Читать далее
Похожие темы
  • Окна
  • Программирование
  • Окна
Об авторе Райан Дьюб(Опубликовано 942 статей)

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

как сбросить windows 10 к заводским настройкам
Ещё от Ryan Dube

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться