5 IF изявления за използване за по -интелигентни пакетни скриптове за Windows

5 IF изявления за използване за по -интелигентни пакетни скриптове за Windows

Ако вършите много работа в пакетните файлове на Windows, IF изявление предлага много мощен начин за добавяне на гъвкавост към вашите скриптове.





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





Ако сте готови да започнете скриптове, нека започнем!





1. Сравнете стойностите

Едно от основните неща, които обикновено трябва да правите в пакетния скрипт, е сравнете две стойности и следвайте различен начин на действие в зависимост от сравнението.

Например, да предположим, че сте искали да напишете групов скрипт, който да проверява ежедневно размера на твърдия диск на вашия компютър. Ако е под 3 GB, искате да получите отчет по имейл, който гласи „Твърде малко място на твърдия диск“.



За да създадете скрипт, който сравнява текущото свободно пространство на твърдия диск с вашия лимит, трябва да създадете следния пакетен скрипт и да го запишете като .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' в този скрипт извиква пространството 'logicdisk' и го поставя в променливата 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, които могат да бъдат изтрити безопасно, за да се освободи място на диска.

Прочетете Напред
Свързани теми
  • Windows
  • Програмиране
  • Windows
За автора Райън Дубе(942 публикувани статии)

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

как да създадете Windows 7 инсталирайте USB
Още от Райън Дубе

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате