![]() |
Как осуществить циклическую обработку параметров %1,%2... в bat-файле
Ситация такая:
Бат-файлу передаются параметры %1, %2, ... он их обрабатывает и передаёт приложению в качестве парметров %1, %2,.. Число параметров, передаваемых бат-файлу, не фиксированное, может быть разным. Нужен цикл, который поочерёдно обрабатывает переменные %i пока %i существует (или не равно нулю). Возможно ли обрабатывать циклически такие переменные (%1, %2..) в коммндном файле? |
leonaft, гляньте для начала тему:
CMD/BAT - [решено] Обработка ключей запуска CMD- файла |
amel27, мало чего понял из того, что там написано, но то, что мне нужно вроде бы получилось.
Вот например батник, выводящий список, всех сообщённых ему параметров: Код:
@Echo Off |
Цитата:
|
leonaft,
Код:
@Echo Off |
El Sanchez, ГЕНИАЛЬНО!
Вот извечная была проблема пропарсить одну строку из неизвестного кол-ва элементов, а тут такое элегантное решение нарисовалось - отправить строку в процедуру как параметры (правда ужесточается ограничение длины строки) и парсить их обычным циклом! :clapping: |
Цитата:
Цитата:
|
Кстати, заметил ограничение длины строки команды. Например, нужно выделить энное число папок и файлов и передать их пути приложению или батнику. Проверил это на дирректории Program files (там очень много папок). Максимум можно передать через командную строку 66-62 а то и меньше путей (зависит от длины этих путей и имён).
В Тоталкоммандере, параметр %L возвращает путь к текстовому файлу, содержащему список всех путей выделенных файлов и папок, который автоматически создаётся в каталоге %Temp% при запросе этого параметра. Многие программы для работы с файлами поддерживают чтение путей из текстового файла. Наверное, только используя подобный способ - запись путей в файл, и потом передача этого списка приложению (архвиатору, копиеру, антивирусу...), можно производить операции, со сколь угодно большим числом файлов и папок. |
Время: 11:51. |
Время: 11:51.
© OSzone.net 2001-