реклама
Ако вършите много работа в пакетните файлове на Windows, АКО изявление предлага много мощен начин да добавите гъвкавост към вашите скриптове.
В тази статия ще научите за петте основни типа изявления IF, които можете да използвате в пакетния файл на Windows, как изглежда правилния синтаксис и реалистичен пример за всеки.
Ако сте готови да започнете да създавате сценарии, нека започнем!
1. Сравнете стойностите
Едно от основните неща, които обикновено трябва да направите в пакетния скрипт, е сравнете две стойности и следвайте различен ход на действие в зависимост от сравнението.
Например, да кажем, че сте искали да напишете пакетен скрипт, който ежедневно проверява размера на твърдия диск на вашия компютър. Ако е под 3 GB, искате да получите имейл отчет, който гласи: „Място на твърдия диск е твърде ниско.“
За да създадете скрипт, който сравнява текущото свободно пространство на твърдия диск с вашия лимит, трябва да създадете следния пакетен скрипт и да го запишете като .bat файл.
@echo off. задайте DriveLimit = 300000000. за / f "usebackq delims == tokens = 2" %% x in (`wmic logicdisk където" DeviceID = 'C:' "получи FreeSpace / format: value`) задайте FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Ако% FreeSpace% GTR% DriveLimit% (Ехо Има достатъчно свободно място. ) else (Echo Няма достатъчно свободно място. )
WMIC е компонентът за управление на инструменти за управление на Windows, който се предлага с асортимент от команди, които можете да използвате за изтегляне на информация за компютър. Ето как командата „wmic“ в този скрипт нарича зоната „логически диск“ и го поставя в променливата FreeSpace. Сега можете просто да замените реда „Echo Not достатъчно свободно място“ с блатна команда за имейл, за да ви изпратим сигнал.
И накрая, настройте този скрипт като пакетна задача на Windows, която се изпълнява ежедневно.
Ако никога досега не сте използвали блат, имаме статия, която ви показва как да настроите blat. Непознат с настройката на планираните работни места? Разкрихме ви статия за как да настроите планираните задачи на Windows 4 Скучни задачи, които можете да автоматизирате с програмиста за програмиране на WindowsВремето ви е твърде ценно, за да се губи с повтарящи се задачи. Нека ви покажем как да автоматизирате и планирате задачи. Имаме и няколко страхотни примера. Прочетете още .
2. Струнни сравнения
Друго ценно IF сравнение, което можете да направите в пакетна работа, е сравняване на струни.
В следващия пример ще видите как да проверите вашата версия на Windows с помощта на пакетно задание. След това можете да сравните това с очакваната от вас версия на Windows.
Някои приложения на този скрипт биха били за ИТ одити, когато трябва бързо да стартирате скрипт и да се уверите, че текущата операционна система е най-новата или дали тя се нуждае от надстройка.
Ето как изглежда този скрипт
@echo off. за / f "жетони = 4-5 delims =. "%% i in ('ver") задайте VERSION = %% i. %% j. ако "% 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.
Ето как изглежда резултатът от този скрипт
Възможността за сравняване на низове в партида отваря цял списък от възможности. Ако изследвате всички информация, която можете да получите от WMIC команда ще видите колко статистически данни за вашия компютър можете да наблюдавате. Можете да използвате планирани партидни задачи, за да сигнализирате за тях.
3. Проверете дали файл съществува
Друга полезна ситуация, в която IF изявление в batch файл е да проверете за наличието на файл с данни.
Много пъти заданието за пакет е просто инструмент за мониторинг, който може да бъде планиран за проверка за нови входящи файлове с данни в конкретна директория.
След това пакетното задание може или да копира този файл на друго място, където може да бъде обработено, или да стартира някакъв скрипт на Windows, който обработва файла в изход на Excel.
(В миналото сме писали как да го направим използвайте скриптове на Windows за обработка на данни във файл в Excel 5 полезни VB Windows скриптове за автоматизиране на използването на вашия компютърОт мониторинга на уебсайтове до системните отчети научете как да автоматизирате всички неща с тези невероятни VB скриптове, които можете да кодирате в Windows в момента. Прочетете още ; добро четене на фона.)
Използването на пакетен файл, за да проверите дали файлът съществува в директория е бързо и лесно. Ето как изглежда този скрипт
@echo off. ако съществува c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) друго (Rem файл не съществува. )
Сравнението IF EXISTS е полезно за много неща.
Например, ако имате работеща система или приложение, което създава нови журнали за грешки в конкретна папка, когато има проблем, можете да стартирате пакетна работа всеки толкова често, за да следите дали се създават нови журнали за грешки, за да можете да изпращате тревога.
4. Проверете дали командата не е успешна
Аспект на сценариите на пакетни файлове, които използват твърде малко ИТ хора или програмисти проверка за грешки.
Има много пакетни задачи, които плават наоколо, които изпълняват критични ИТ задачи като архивиране на важни файлове или извършване на операции с копиране на файлове. Когато тези партидни задачи се провалят, системите се провалят и хората забелязват.
Много по-интелигентно е да получавате предупреждение, когато вашата партидна задача не е успяла да направи команда преди хората започват да забелязват. По този начин можете да коригирате проблема активно.
Можете да направите това, като използвате променливата% errorlevel%, която повечето приложения и команди връщат след стартирането им.
Всичко, което трябва да направите, е да следвате вашата команда от командата IF% ERRORLEVEL%. Ако приложението или командата върна нула, всичко е наред. Ако не, тогава трябва да си изпратите имейл.
@echo off. xcopy C: \ somefolder E: \ резервна папка. АКО% ERRORLEVEL% NEQ 0
Не е нужно да поемате по имейл маршрута. Винаги можете да напишете журнал за грешки, който можете да проверявате всяка сутрин, или да стартирате второ приложение или команда, която се опитва да направи копието с помощта на алтернативна команда. Каквото и да искате да предприемете, IF% ERRORLEVEL% ви позволява да го направите.
Ако предпочитате да използвате IF изявление, за да проверите за конкретни кодове за грешки, Windows предлага доста обширен списък с кодове за грешки.
5. Проверете за липсващи параметри
Последното полезно изявление IF не е конкретна команда, а вместо това да се провери дали скриптът получи съответните входни параметри.
Например, да кажем, че сте написали скрипт, който изпълнява команда xcopy от папка за въвеждане в обща мрежова папка, използвана от екип. Потребителят просто трябва да следва името на вашия скрипт с параметрите, определящи техния личен път към файла.
Очевидно не можете да изпълните правилно скрипта си без посочения път, така че можете да поставите IF изявление в началото на скрипта си, за да сте сигурни, че и двата параметъра са въведени.
Ето как изглежда това.
@echo off. АКО [% 1] == [] ( GOTO sub_message. ) ELSE ( xcopy% 1 E: \ резервна папка. ) GOTO eof.: Sub_message. echo Забравихте да посочите пътя си.: EOF.
Ако никога досега не сте използвали параметри с пакетни скриптове, процентът символ, последван от число, представлява променливата на параметъра. % 1 е първият параметър,% 2 е вторият и т.н.
Партидните работни места могат да бъдат мощни
Много хора започват да използват пакетни задачи за прости задачи, които трябва да се изпълняват последователно. С IF изявленията е възможно да добавите много повече интелигентност към вашите скриптове.
Разбира се, ако наистина искате да го увеличите, можете да разгледате VBA с нашето ръководство създаване на вашето първо приложение VBAили може би дори научете програмирането на Python.
Често можете да използвате по-усъвършенствани езици за програмиране като тези или научете се да използвате PowerShell 5 причини, които трябва да използвате PowerShell вместо пакетно писанеPowerShell е това, което бихте получили, ако преминете на командния ред с Batch Scripting, хвърлите някои допълнителни функции и го изритате на няколко места. Ето няколко причини, които трябва да опитате. Прочетете още , за да изпълнявате много от същите задачи, за които в момента използвате пакетни задания.
Райън има бакалавърска степен по електротехника. Работил е 13 години в автоматизацията, 5 години е в ИТ, а сега е инженер на приложения. Бивш управляващ редактор на MakeUseOf, той говори на национални конференции за визуализация на данни и е участвал в националната телевизия и радио.