Пакетный файл: ЕСЛИ НЕ Х%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-му аргументу.