Условная обработка с помощью команды if

Оцените статью

windows75319 Условная обработка с помощью команды ifОдной из наиболее важных возможностей любого языка программирования является возможность выбора из нескольких разных операторов на основе условий, сложившихся в процессе выполнения программы. Для этой цели в языке пакетных файлов имеется команда if. В своей самой общей форме команда if проводит сравнение двух строк и выполняет команду, если строки совпадают: if Строка 1 == Строка2 команда

Эта команда используется в сочетании с переменными командной строки или с подстановкой переменных среды окружения, как показано в следующем примере: if "%1" == "ERASE" delete somefile. dat

Только в том случае, если в качестве первого аргумента командной строки использовалось слово ERASE, эта команда удаляет файл somefile. dat. Наличие кавычек в этой команде не является безусловным требованием. Если они опущены и команда записана в виде if %1 == ERASE delete somefile. dat она по-прежнему будет работать, пока при запуске пакетного файла будет указываться какой-нибудь аргумент командной строки. Но если пакетный файл запускается без аргументов, обозначение %1 ничем не заменяется, и команда приобретает следующий вид: if == ERASE delete somefile. dat

Это недопустимая команда. Оболочка CMD ожидает увидеть что-нибудь перед частью команды, начинающейся с ==, и «ругается», если там ничего нет. Поэтому сложилась такая практика: ставить вокруг тестируемого элемента какой-нибудь символ, неважно какой именно. Работает даже символ $: if $%0$ == $ERASE$ delete somefile. dat

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

Команда if также позволяет изменять смысл проверки на противоположный с помощью варианта not: if not "%1" == файлу и можно воспользоваться переменными среды окружения и аргументами обозначения % для составления имени. Если в имени файла есть пробелы, его нужно заключить в кавычки. В варианте exist может также использоваться модификатор not, как в команде if not exist Имя_файла.

Комментирование закрыто.

Вверх страницы