Bat if else: Batch Script — If/else Statement
Содержание
Пакетные файлы Windows: если еще
Задавать вопрос
спросил
Изменено
7 лет, 1 месяц назад
Просмотрено
200 тысяч раз
Я создаю простой пакетный файл, требующий одного аргумента (вы можете указать больше, но я их игнорирую).
Для тестирования, это то, что у меня есть.
если не %1 == "" ( директор /с/б %1 ) еще ( эхо нет )
По сути, я хочу сказать, если указан аргумент, рекурсивно отображать все файлы в папке. В противном случае скажите нет.
Это работает, когда я предоставляю аргумент, но если я его не предоставлю, он просто скажет мне (в то время это было неожиданно
.
Я имею в виду, что это работает, но я хотел, по крайней мере, отобразить пользователя -дружественное сообщение, объясняющее, почему это не работает. Как мне изменить код?
- windows
- пакетный файл
если не %1 == "" (
должно быть
, если не "%1" == "" (
Если аргумент не задан, он полностью пуст, даже не ""
(который представляет собой пустую строку в большинстве языков программирования). Поэтому мы используем окружающие кавычки для обнаружения пустого аргумента.
3
Окружите чем-нибудь свой %1
.
Пример:
если не "%1" == ""
Еще один, который я видел довольно часто:
если не {%1} == {}
И так далее…
Проблема, как вы можете догадаться, в том, что %1
буквально заменяется пустотой. Это не «пустая строка», это на самом деле пустое место в вашем исходном файле в этот момент.
Затем, после замены, интерпретатор пытается разобрать оператор if
и запутывается.
Вы должны сделать следующее:
если "%1" == "" ( эхо Переменная пуста ) ЕЩЕ ( эхо Переменная содержит %1 )
1
Другой связанный с этим совет — используйте «%~1» вместо «%1». Введите «ПОЗВОНИТЬ /?» в командной строке Windows, чтобы получить более подробную информацию.
1
Альтернативой может быть установка переменной и проверка ее определения:
SET ARG=%1 IF DEFINED ARG (эхо "Определено: %1") ELSE (эхо "%%1 не определено")
К сожалению, использование %1
напрямую с DEFINED
не работает.
вы должны сделать так…
если не «A%1» == «A»
если входной аргумент %1 равен нулю,
ваш код будет иметь проблемы.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Пакетный файл, если еще — Как использовать, если еще в программировании пакетного файла?
В этом руководстве вы узнаете о структурах принятия решений, которые представляют собой командный файл if else .
Если еще заявление: Введение |
Синтаксис оператора If else |
Партии, если еще примеры |
В основном логика программирования зависит от True (1) или False (0). Как и в любом другом языке программирования, операторы командного файла if else помогают нам принять решение между истинным/ложным или несколькими вариантами путем наложения определенного условия.
Пакетный файл, если оператор else
— Синтаксис
, если (условие) сделать что-то :: Для if..else если if (условие) (оператор1) else (оператор2)
Итак, как следует из синтаксиса, сначала проверяется условие, и если оно истинно, соответствующие операторы выполняются в пакетном файле оператора if. Что касается пакетного файла , если еще
, сначала проверяется условие оператора if, и если оно истинно, выполняется оператор 1
, иначе выполняется оператор2
.
Блок-схема пакетного файла If Else
Ниже приведена блок-схема, иллюстрирующая концепцию оператора if else
.
Теперь, когда мы узнали, как работает пакетный файл if else, давайте рассмотрим несколько примеров.
Пакетный файл, если еще Пример: проверка целочисленных переменных и строковых переменных
Подробные сведения о переменных пакетного файла см. в этой статье.
КОМПЛЕКТ /А а=2 КОМПЛЕКТ /А б=3 НАБОР name1=Астон НАБОР name2=Мартин :: Использование оператора if ЕСЛИ %a%==2 эхо Значение a равно 2 IF %name2%==Martin echo Привет, это Мартин :: Использование операторов if else IF %a%==%b% (эхо-номера равны) ELSE (эхо-номера разные) ЕСЛИ %name1%==%name2% (эхо-имя такое же) ELSE (эхо-имя другое) ПАУЗА
Теперь это будет генерировать следующий вывод.
Пакетный файл, если еще Пример проверки, определена ли переменная или нет
@echo OFF ::Если var не определен, SET var = hello ЕСЛИ "%var%"=="" (SET var=Hello) :: Это можно сделать и таким образом ЕСЛИ НЕ ОПРЕДЕЛЕН var (SET var=Hello)
В любом случае, он установит var
на 'Hello'
, так как это не было определено ранее.
Пакетный файл, если еще Пример проверки существования файла или папки
EXIST
Команда используется для проверки существования файла. Прочтите эту статью, чтобы узнать подробности о EXIST и всех других командах пакетного файла.
@эхо ВЫКЛ. ::EXIST используется для проверки существования ЕСЛИ СУЩЕСТВУЕТ D:\abc.txt ECHO abc.txt найден ЕСЛИ СУЩЕСТВУЕТ D:\xyz.txt (ECHO xyz.txt найден) ELSE (ECHO xyz.txt не найден) PAUSE
Теперь предположим, что у нас есть "abc.txt"
на диске D, а "xyz.txt"
не существует на диске D: тогда будет сгенерирован следующий вывод.