Командная строка – команда If

Расшифровка значений

not

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

errorlevel заданное_число


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

команда_для_обработки

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

строка_№1==строка_№2


Данный параметр устанавливает требование – условие станет выполняться только в том случае, когда указанные строки будут совпадать друг с другом. Допускается несколько вариантов задания строк, в зависимости от конкретной ситуации.

exist название_файла

Данное условие будет выполнено в том случае, когда документ с указанным именем существует.

оператор_сравнения

В качестве указанного параметра предусматривается оператор сравнения. Он состоит из трех символов и необходимо сказать о доступных вариантах: EQU (равенство), NEQ (значения не равны между собой), LSS (менее), GTR (более), LEQ (значение является меньшим или равным), GEQ (значение является большим или равным).

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

cmdextversion заданное_число

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

defined заданная_переменная

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

команда_и_параметры


Команда, а также все доступные для неё параметры в ходе обработки в КС, когда работает else.

Синтаксис

if [not] errorlevel заданное_число команда_для_обработки [else выражение] if [not] строка_№1==строка_№2 команда_для_обработки [else выражение] if [not] exist название_файла команда_для_обработки [else выражение]

:/>  Будет ли работать 32 битная программа на 64 битной системе

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

if [/i] строка_№1 оператор_сравнения строка_№2 команда_для_обработки [else выражение] ifcmdextversion заданное_число команда_для_обработки [else выражение] ifdefined заданная_переменная команда_для_обработки [else команда_и_параметры]

Урок 3 по cmd – работа с переменными |

Объявление собственных переменных является неотъемлемой часть практически любого языка программирования, так в языке vbscript они объявляются с помощью ключевого слова dim, а в jscript – используется ключевое слово var.

Третий урок по командной строке

Переменные командной строки Windows представляют немного другой характер, тут нельзя объявить группу переменных cmd, или же сразу присвоить значения нескольким переменным в командной строке. Давайте посмотрим на следующие строчки кода:

В данном примере, с помощью ключевого слова cmd set мы поэтапно объявили три переменные (Var1, Var2 и Var3), как и в языке vbscript, в cmd регистр символов не играет роли, поэтому, данные строчки выведут фразу “Привет Мир!!!”

или

Стоит учитывать один момент, запись

и

это не одно и тоже, то есть, в первом случае мы создаем cmd переменную “var1”, а во втором – “var1 “. С присвоением значений аналогичная ситуация, так что обращайте внимание на пробел!!!

Видим, что бы вывести значение переменной с помощью функции Echo, мы заключаем ее в символ “%”, для set – просто прописываем ее имя, так же стоит учитывать, что всем переменным присваивается строковой тип.

Если вы запустите на выполнение команду cmd set, которая выводит список всех переменных и их значений в текущем сеансе, то увидите, что там будут присутствовать и только что созданные cmd переменные и переменные среды. Мы сможем обращаться к ним на протяжение всего сеанса работы.

:/>  CD и CHDIR - сменить каталог .

Что бы очистить переменные в командной строке Windows от их содержимого, нужно просто присвоить пустое значение:

Мы просто после имени прописали знак равенства и все. Стоит помнить, что если в таких языках программирования как vbscript и jscript присвоение пустого значения переменной не влияет на ее существование, то в командной строке происходит полное ее удаление, то есть, команда:

просто выведет строчку %Var3%, а команда

Выведет сообщение “переменная среды var3 не определена

Стоит учитывать тот момент, что если мы хотим, что бы переменная командной строки Windows содержала специальные символы (например, @ < > & | ^ ), то их нужно экранировать.  В языке jscript для вывода специальных символов используются esc-последовательности, в командной строке специальный символ экранируется с помощью “^”:

В данном примере мы экранировали символы & и ^, тем самым присвоив фразы:

“100 & 3 = 5”
“100 ^3”

Стоит обратить внимание, что если мы попытаемся вывести значения данных переменных с помощью функции cmd set, то проблем не возникнет, но если будет использовать функцию echo, то получим совсем не тот результат, что ожидали. Так, при попытке выполнить следующую команду:

Получим предупреждение:

100
“3” не является внутренней или внешней командой, исполняемой программой или командным файлом.

Это происходит из-за повторного анализа спец-символов при использовании функции echo. Надо просто прописать символ “^” экранирования не один раз, а трижды:

Теперь при выполнении кода:

все пройдет успешно.

Как и в сценариях сервера Windows Script Host, переменные в командной строке Windows могут содержать заданную область видимости.

Область видимости – блок кода, за пределами которого нельзя получить доступ к переменным, объявленным в нем. Довольно ясно значение области видимости проявляется при роботе с функциями, по этому вопросу можете прочить статью “Урок 3 по JScript: Объявление пользовательских функций“.

:/>  SSD Tweaker v4.0.1 Free Pro

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

переменные командной строки windows

Что бы задать локальную область видимости, используется блок SETLOCAL … ENDLOCAL. Все cmd переменные командной строки Windows, объявленные в середине данного блока не будут видны за его пределами. Откройте редактор (я использую редактор Notepad , так как он сразу подсвечивает код), и пропишите в нем следующие строчки кода:

Видим, что вначале мы объявили var1 и присвоили ей значение 0, далее мы снова объявили переменную с аналогичным именем, но уже в блоке SETLOCAL … ENDLOCAL. В сценарии происходит вывод значения как локальной, так и глобальной var1. Я специально использовал латинские знаки, что бы у вас в случае чего не выводились крякозябры.

Спасибо за внимание. Автор блога

Оставьте комментарий