Лучшие операторы IF для более разумного использования командных файлов в Windows

Если вы много работаете с Пакетные файлы в Windows Операторы IF предоставляют очень мощный метод Чтобы добавить гибкости сценариям Твой собственный.

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

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

Лучшие операторы IF для более рационального использования пакетных файлов в Windows - 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, который содержит множество команд, которые вы можете использовать для получения информации с вашего компьютера. Вот как это нужно ».WMIC«В этом скрипте доступное место для хранения»логический диски помещает его в переменную FreeSpace. Теперь вы можете заменить строку «Эхо Недостаточно свободного местаПо порядку блат электронная почта чтобы отправить вам уведомление.

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

Если вы раньше не использовали блат, у нас есть статья, чтобы показать вам Как настроить bat. Не привыкли создавать запланированные задания? Мы создали статью о Как настроить запланированные задачи 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.

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

Лучшие операторы IF для более рационального использования пакетных файлов в Windows - Windows

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

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

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

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

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

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

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

@echo off

if exist c:\temp\datafile.txt (

 %WINDIR%\SysWOW64\cmd.exe

 cscript LoadToExcel.vbs

) else (

 rem file doesn't exist

)

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

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

4. Убедитесь, что команда не выполняется.

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

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

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

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

Все, что вам нужно сделать, это следовать вашей команде по команде ЕСЛИ% ОШИБКА%. Если приложение или команда возвращает ноль, значит, все в порядке. Если нет, вам нужно отправить себе оповещение по электронной почте.

@echo off

xcopy C:\somefolder E:\backupfolder

IF %ERRORLEVEL% NEQ 0 <blat command to send email>

Вам не нужно следовать маршруту электронной почты. Вы всегда можете написать журнал ошибок, который можно проверять каждое утро, или запустить второе приложение или команду, которая попытается выполнить задание другим способом. Какое бы действие вы ни хотели совершить, ЕСЛИ% ОШИБКА% Позвольте вам это сделать.

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

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

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

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

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

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

@echo off

IF [%1]==[] (

GOTO sub_message

) ELSE (

xcopy %1 E:\backupfolder

)

GOTO eof

:sub_message

echo You forgot to specify your path.

:eof

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

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

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

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

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

Перейти к верхней кнопке