Урок 5 по CMD — условный оператор if

Урок 5 по CMD — условный оператор if Командная строка

В этой статье мы рассмотрим условный оператор if командной строки (CMD). Как и в любом другом языке программирования, условные оператор служит для проверки заданного условия и в зависимости от результат, выполнять то, или иное действие.

Условный оператор cmd if содержит практически тот же синтаксис, что и аналогичные конструкции языков VBScript (смотри статью “Урок 5 по VBScript: Условный оператор if…else и select…case”) и Jscript (статья “Урок 8 по JScript: Описание условного оператора if…else, арифметических и логических операторов”) сервера сценариев Windows Script Host.

Оператор if командная строка

if условие (оператор1) [else (оператор2)]

Вначале идет проверка условия, если оно выполняется, идет переход к выполнению оператора1, если нет – к оператору2.  Если после ключевого слова if прописать not (if not), то: произойдет проверка условия, если оно не выполниться – переход к оператору1, если условие выполняется – переход к оператору2. Использование круглых скобок не является обязательным, но если вам нужно после проверки условия выполнить сразу несколько операторов cmd if, то круглые скобки необходимы.

if командная строка

Давайте откроем редактор notepad++ и пропишем в нем такой код:

@echo off
if"%1"=="1"(echo odin) else (echo dva)

Как я уже сказал, мы можем использовать не один оператор (командной строки) cmd if, а несколько, посмотрите на данный пример:

@echo off
if"%1"=="1"(hostname & ver & ipconfig /all) else (netstat -a)

Тут, как и прежде идет проверка передаваемого сценарию параметра, если значение равно 1, то произойдет последовательное выполнение трех команд:

  • hostname – выводит имя компьютера
  • ver – выводит версию ОС
  • ipconfig /all – выводит настройки сети

Для последовательного выполнения команд мы использовали знак конкатенации (объединения) “&”. При невыполнении условия произойдет вызов утилиты netstat.

Что бы проверить существование переменной, используются операторы if defined (если переменная существует) и if not defined (если переменная не существует):

@echo off
set Var1=100
if defined Var1 (echo%Var1%)
set Var1=
if not defined Var1 (echo NOT EXIST!!! Var1)

Если вы запустите на выполнение данный код, то в окне командной строки будут выведены две строки:

100
NOT EXIST!!! Var1

Вначале, в сценарии происходит создание переменной Var1 и присвоение ей значения 100, далее идет проверка: если переменная Var1 существует, вывести ее значение. Потом мы удаляем переменную и снова запускаем проверку: если переменная Var1 не существует, вывести строку NOT EXIST!!! Var1.

cmd if

Мы вправе использовать условный оператор if как вложенный:

@echo off
if"%1"=="1"(@if"%2"=="2"(hostname & ver) else (ver)) else (hostname & ver & netstat -a)

В данном примере, первый оператор командной строки if проверяет, равен ли первый аргумент 1, если да, то идет выполнение второго условно оператора и проверка на значение другого аргумента.

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

Давайте теперь посмотрим на такой пример:

@echo off
if"%1"=="slovo"(echo slovo) else (@if "%1"=="SLOVO"(echo SLOVO) else (echo NOT DATA!!!))

Тут идет проверка первого аргумента, и регистр строки учитывается, что бы отключить учет регистра при проверке строк, после оператора if нужно прописать ключ /I:

@echo off
if/I "%1"=="slovo"(echo slovo) else (if/I "%1"=="SLOVO"(echo SLOVO) else (echo NOT DATA!!!))

В данном случае, передадим мы строку SLOVO, slovo, SloVo и так далее, все ровно на экран консоли выведется строка “slovo”, так как учет регистра знаков будет отключен.

Оператор if командная строка, операторы сравнения

Кроме оператора сравнения “==” можно использовать и другие операторы для проверки условия:

  • equ «Равно». Дает True, если значения равны
  • neq «Не равно». Дает True, если значения не равны
  • lss «Меньше». Дает True, если зпачение1 меньше, чем значение2
  • lcq «Меньше или равно». Дает True, если значепие1 равно или меньше, чемзначение2
  • gtr «Больше». Дает True, если значение1 больше, чем значение2
  • geq «Больше или равно». Дает True, если значепие1 равно или больше, чем значение2
cmd if else

В этой статье мы рассмотрели условный оператор командной строки if.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий для Илья Отменить ответ

  1. Илья

    В операторах сравнения ошибка. Правильно не lcq, а leq. Less or EQual

    Ответить
  2. Ivan

    Ошибочка господа! Меньше или равно -LEQ. Поправить нужно…

    Ответить