Проверка на наличие пустых параметров

nastena_r_v
Дата: 13.01.2018 00:47:02
Здравствуйте! Не очень понимаю командные файлы, но пытаюсь разобраться. Подскажите, как можно сделать проверку на наличие пустых параметров?
Есть задание: Разработать командный файл создающий, копирующий или удаляющий каталог, указанный в командной строке, в зависимости от выбранного ключа (замещаемого параметра) /n, /c, /d
Есть решение:
if %1==/n md %2
if %1==/c xcopy /i /e %2 %3
if %1==/d rd /s /q%2

Возможно что-то не так... буду признательная за любую помощь. Спасибо.
alekcvp
Дата: 13.01.2018 01:38:04
nastena_r_v,

Что значит "наличие пустых параметров"?
Отсутствующих, вы имеете в виду?

Можно, например, так:

if "%2" equ "" goto noparam

Кстати, рекомендую всегда в IF параметры и условия заключать в кавычки, иначе при отсутствии параметра могут быть сюрпризы: попробуйте ваш батник запустить без параметров из cmd.
alekcvp
Дата: 13.01.2018 01:39:07
alekcvp
Кстати, рекомендую всегда в IF параметры и условия

Параметры и ожидаемое значение, разумеется.
Akina
Дата: 13.01.2018 15:03:19
alekcvp
Можно, например, так:
Нежелательно использовать для имитозаполнения символы, которые хотя бы в каком-то месте имеют специальное значение. Можно по привычке применить их в сложной конструкции, где этот символ будет интерпретирован как-то иначе, и наиметь проблем на пустом месте. Двойная кавычка в этом смысле - не очень подходящий символ.
Basil A. Sidorov
Дата: 13.01.2018 15:38:56
В условиях пакетных файлов двойные кавычки удобны тем, что позволяют сравнивать значения с пробелами и некоторыми другими, тоже специальными, символами:
 if "%~1" NEQ "" команда опции "%~1"