Пакетный файл: ЕСЛИ НЕ Х%5== Х

Что это за пакетный файл "ЕСЛИ НЕ Х%5== Х"? Я знаю, что это оператор if, а% 5 - пятый аргумент. Что означает X%5? И что значит сравнивать его с X?

2 ответа

Я не писал пакетный файл DOS целую вечность:), но я думаю, что он напоминает технику, используемую в сценариях оболочки Unix: выражение X%5==X оценивается как истина, если пятый параметр не существует, т. е. в сценарий передано менее 5 параметров. Оболочка (command.com или что-то еще) заменяет %5 с параметром, который является пустой строкой, если было предоставлено менее 5 параметров, что уменьшает выражение до X==X (это точно).

Это проверит, определен ли 5-й аргумент. Например, если 5-й аргумент не определен, вы будете иметь IF NOT X==X => пятый аргумент не передан. если он имеет некоторое значение, например fifth_arg_value у тебя будет IF NOT Xfifth_arg_value==X строки не будут равны, и вы будете знать, что значение передается 5-му аргументу.

Другие вопросы по тегам