Reklama
Ak robíte veľa práce v dávkových súboroch Windows, Vyhlásenie IF ponúka veľmi účinný spôsob, ako zvýšiť flexibilitu vašich skriptov.
V tomto článku sa oboznámite s piatimi hlavnými typmi príkazov IF, ktoré môžete použiť v dávkovom súbore systému Windows, ako vyzerá správna syntax a realistickým príkladom každého z nich.
Ak ste pripravení začať s skriptovaním, začnime!
1. Porovnať hodnoty
Jednou zo základných vecí, ktoré zvyčajne potrebujete v dávkovom skripte, je porovnajte dve hodnoty a postupujte podľa iného postupu v závislosti od porovnania.
Povedzme napríklad, že ste chceli napísať dávkový skript, ktorý denne kontroluje veľkosť pevného disku vášho počítača. Ak je nižšia ako 3 GB, chcete dostať e-mailovú správu s textom „Nedostatok miesta na pevnom disku“.
Ak chcete vytvoriť skript, ktorý porovnáva aktuálny voľný priestor na pevnom disku s vašim limitom, vytvorili by ste nasledujúci dávkový skript a uložte ho ako súbor .bat.
@echo off. sada DriveLimit = 300000000. pre / f "usebackq delims == tokeny = 2" %% x in (`wmic logicaldisk, kde" DeviceID = 'C:' "získava FreeSpace / format: value`) nastaví FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Ak je% FreeSpace% GTR% DriveLimit% (Echo, je k dispozícii dostatok voľného miesta. ) else (Echo Nedostatok voľného miesta. )
WMIC je súčasť Windows Management Instrumentation v systéme Windows, ktorá sa dodáva so sortimentom príkazov, ktoré môžete použiť na získanie informácií o PC. Takto príkaz „wmic“ v tomto skripte nazýva priestor „logicaldisk“ a umiestni ho do premennej FreeSpace. Teraz môžete jednoducho nahradiť riadok „Echo Nedostatok voľného miesta“ príkazom s e-mailom, ktorý vám pošle upozornenie.
Nakoniec nastavte tento skript ako naplánovanú dávkovú úlohu systému Windows, ktorá sa spúšťa každý deň.
Ak ste ešte nikdy nepoužívali platidlo, máme článok, ktorý vám ukáže ako nastaviť latku. Neznáte nastavenie plánovaných úloh? Máme pre vás článok o ako nastaviť naplánované úlohy systému Windows 4 Nudné úlohy, ktoré môžete automatizovať pomocou plánovača úloh systému WindowsVáš čas je príliš cenný na to, aby ste sa zbytočne míňali opakovanými úlohami. Ukážeme vám, ako automatizovať a plánovať úlohy. Máme aj niekoľko vynikajúcich príkladov. Čítaj viac .
2. Porovnanie reťazcov
Ďalšie cenné porovnanie IF, ktoré môžete urobiť v dávkovej úlohe, je porovnávanie reťazcov.
V nasledujúcom príklade uvidíte, ako skontrolovať verziu systému Windows pomocou dávkovej úlohy. Potom to môžete porovnať s očakávanou verziou systému Windows.
Niektoré použitia tohto skriptu by boli určené pre audity IT, keď potrebujete rýchlo spustiť skript a uistiť sa, že aktuálny operačný systém je najnovší alebo či potrebuje aktualizáciu.
Ako tento skript vyzerá?
@echo off. pre / f "tokeny = 4-5 delims =. "%% i in ('ver') nastaví VERSION = %% i. %% j. ak "% version%" == "6.0" echo Windows Vista. ak "% version%" == "6.1" echo Windows 7. ak "% version%" == "6.2" echo Windows 8. ak "% version%" == "6.3" echo Windows 8.1. ak "% version%" == "10.0" echo Windows 10.
Ako vyzerá výstup tohto skriptu:
Schopnosť porovnávať reťazce v dávke otvára celý zoznam možností. Ak preskúmate všetky informácie, ktoré môžete získať z príkazu WMIC uvidíte, koľko štatistík o vašom počítači môžete sledovať. Na ich upozornenie môžete použiť naplánované dávkové úlohy.
3. Skontrolujte, či súbor existuje
Ďalšou užitočnou situáciou je príkaz IF v dávkovom súbore skontrolujte existenciu dátového súboru.
Mnohokrát je dávková úloha iba monitorovacím nástrojom, ktorý môže byť naplánovaný na kontrolu nových prichádzajúcich dátových súborov v konkrétnom adresári.
Potom môže dávková úloha skopírovať tento súbor na iné miesto, kde sa dá spracovať, alebo odštartovať skript systému Windows, ktorý súbor spracuje do výstupu programu Excel.
(V minulosti sme písali o tom, ako používať skripty Windows na spracovanie údajov do súboru Excel 5 Užitočné skripty Windows VB na automatizáciu používania počítačaOd monitorovania webových stránok až po systémové správy sa naučte, ako automatizovať všetky veci pomocou týchto úžasných skriptov VB, ktoré môžete v systéme Windows teraz kódovať. Čítaj viac ; nejaké dobré čítanie na pozadí.)
Použitie dávkového súboru na kontrolu, či súbor existuje v adresári, je rýchle a ľahké. Ako vyzerá tento skript.
@echo off. ak existuje c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) inde (súbor rem neexistuje). )
Porovnanie IF EXISTS je užitočné pre veľa vecí.
Napríklad, ak máte spustený systém alebo aplikáciu, ktorá vytvára nové denníky chýb v konkrétnom priečinku, keď sú k dispozícii problém, môžete spustiť dávkovú úlohu tak často, aby ste mohli sledovať, či sa vytvárajú nové protokoly chýb, aby ste mohli poslať strehu.
4. Skontrolujte, či príkaz zlyhal
Aspekt skriptovania dávkových súborov, ktorý používa príliš málo IT ľudí alebo programátorov, je kontrola chýb.
Existuje mnoho dávkových úloh plávajúcich okolo, ktoré vykonávajú kritické úlohy v oblasti IT, ako napríklad zálohovanie dôležitých súborov alebo vykonávanie operácií kopírovania súborov. Keď tieto dávkové úlohy zlyhajú, systémy zlyhajú a ľudia si to všimnú.
Je oveľa chytrejšie dostať upozornenie, keď vaša dávková úloha zlyhala z príkazu pred ľudia si začínajú všímať. Týmto spôsobom môžete problém vyriešiť proaktívne.
Môžete to urobiť pomocou premennej% errorlevel%, ktorú väčšina aplikácií a príkazov vracia po ich spustení.
Všetko, čo musíte urobiť, je riadiť sa príkazom IF% ERRORLEVEL%. Ak aplikácia alebo príkaz vrátil nulu, všetko je v poriadku. Ak nie, musíte si poslať e-mail.
@echo off. xcopy C: \ somefolder E: \ backupfolder. IF% ERRORLEVEL% NEQ 0
Nemusíte ísť cestou e-mailu. Vždy môžete napísať protokol chýb, ktorý môžete skontrolovať každé ráno, alebo spustiť druhú aplikáciu alebo príkaz, ktorý sa pokúsi vykonať kópiu pomocou alternatívneho príkazu. Bez ohľadu na to, akú akciu chcete vykonať, IF% ERRORLEVEL% vám to umožní.
Ak by ste radšej používali príkaz IF na kontrolu konkrétnych chybových kódov, systém Windows ponúka pekné riešenia rozsiahly zoznam kódov chýb.
5. Skontrolujte, či chýbajú parametre
Posledný užitočný príkaz IF nie je konkrétnym príkazom, ale namiesto toho skontroluje, či skript prijal príslušné vstupné parametre.
Povedzme napríklad, že ste napísali skript, ktorý vykonáva príkaz xcopy zo vstupného priečinka, do bežného sieťového priečinka, ktorý používa tím. Používateľ jednoducho musí nasledovať vaše meno skriptu s parametrami určujúcimi jeho osobnú cestu k súboru.
Je zrejmé, že nemôžete správne spustiť skript bez zadanej cesty, takže môžete vložiť príkaz IF na začiatok skriptu, aby ste sa uistili, že boli zadané oba parametre.
Takto to vyzerá.
@echo off. IF [% 1] == [] ( GOTO sub_message. ) ELSE ( xcopy% 1 E: \ backupfolder. ) GOTO eof.: Sub_message. echo Zabudli ste uviesť svoju cestu.: EOF.
Ak ste nikdy predtým nepoužívali parametre s dávkovými skriptmi, symbol percenta nasledovaný číslom predstavuje premennú parametra. % 1 je prvý parameter,% 2 je druhý atď.
Dávkové úlohy môžu byť silné
Mnoho ľudí začína používať dávkové úlohy pre jednoduché úlohy, ktoré je potrebné vykonávať postupne. Pomocou príkazov IF je možné do skriptov pridať oveľa viac informácií.
Samozrejme, ak to skutočne chcete zintenzívniť, môžete zvážiť preskúmanie VBA s naším sprievodcom vytvorenie vašej prvej aplikácie VBAalebo možno dokonca Naučte sa programovanie v Pythone.
Často môžete používať pokročilejšie programovacie jazyky, ako sú tieto alebo Naučte sa používať PowerShell 5 dôvodov, prečo by ste mali používať PowerShell namiesto dávkového skriptovaniaPowerShell je to, čo by ste dosiahli, keby ste prekročili príkazový riadok s dávkovým skriptovaním, hodili niektoré ďalšie funkcie a vyhodili ich do niekoľkých zárezov. Tu je niekoľko dôvodov, prečo by ste to mali vyskúšať. Čítaj viac , na vykonanie mnohých rovnakých úloh, pre ktoré v súčasnosti používate dávkové úlohy.
Ryan má titul bakalára v odbore elektrotechnika. Pracoval 13 rokov v automatizačnom inžinierstve, 5 rokov v IT a teraz je aplikačným inžinierom. Bývalý šéfredaktor MakeUseOf, vystúpil na národných konferenciách o vizualizácii údajov a vystupoval v celoštátnych televíziách a rozhlase.