![Пакетный файл «переключатель помощи»](https://rvso.com/image/1601551/%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B9%20%D1%84%D0%B0%D0%B9%D0%BB%20%C2%AB%D0%BF%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8%C2%BB.png)
Мне нужна помощь с созданием 'переключателя помощи' для моего пользовательского пакетного файла. Я хочу, чтобы /? работал, но я, по-видимому, упускаю или не знаю, что заставит мой пакетный файл работать.
Есть ли способ создать использование переключателей, аналогичное родным инструментам Windows. [пример типа «copy /v /y .....»]
Я бы, конечно, хотел сделать такую логику намного лучше, и я использую 2 слота аргументов как есть, предполагая поведение по умолчанию за пределами переключателя.
Я посмотрел, но не увидел, что могло бы сделать это поведение более разумным.
решение1
Дело в том, что пакетное программирование довольно примитивно, поэтому, вероятно, нет более разумных способов его реализовать.
Наиболее общий механизм обработки параметров в пакетном файле — это использованиеКоманда SHIFT для проверки параметров по одному. Таким образом, порядок параметров не имеет значения.
Код будет выглядеть примерно так:
:Loop
IF "%1"=="-switch" GOTO Continue
•
• Here your batch file handles -switch
•
SHIFT
GOTO Loop
:Continue
Подробнее о том, что можно делать с параметрами пакетных файлов, читайте в статье
Аргументы командной строки (параметры).