Как сделать цикл for в командной строке Windows?
Мне было интересно, возможно ли это? Я не знаком с использованием командной строки Windows, но я должен использовать ее для проекта, над которым я работаю. У меня есть несколько файлов, для которых мне нужно выполнить функцию для каждого. Я привык работать с python, но, очевидно, это немного по-другому, поэтому я надеялся на какую-то помощь.
В основном мне нужен цикл for для итерации через 17 файлов в папке, выполнения функции на каждом (с использованием конкретного программного обеспечения, которое у меня есть здесь для проекта), а затем будет выводиться файл с уникальным именем (функция обычно требует, чтобы я указывал имя выходного файла), я бы сосал его и просто сделаю это вручную для каждого из 17, но в основном он создает базу данных файла, а затем сравнивает его с каждой из 17. Он должен повторяться через несколько сотен раз. Использование цикла for может сэкономить время работы.
Предложения?
Ответы
Ответ 1
У интерпретатора командной строки действительно есть конструктор FOR, который вы можете использовать из командной строки или из пакетного файла.
Для вашей цели вы, вероятно, хотите что-то вроде:
FOR %i IN (*.ext) DO my-function %i
Это приведет к тому, что имя каждого файла будет иметь расширение *.ext в текущем каталоге, передаваемом моей функции (что может быть, например, другим файлом .bat).
Часть (*.ext)
- это "спецификация файлов", и она довольно гибкая, поскольку вы указываете множество файлов. Например, вы можете сделать:
FOR %i IN (C:\Some\Other\Dir\*.ext) DO my-function %i
Выполнение операции в другом каталоге.
Существует множество опций для файлов и FOR в целом. См
HELP FOR
из командной строки для получения дополнительной информации.
Ответ 2
Для выполнения циклов, независимо от файлов или каталогов, см. e. г. Пакет script. Btw. Помощь MS также должна помочь (но кто там роет)
Ответ 3
Это может помочь вам найти то, что вы ищете...
Пакет script
Мой ответ таков:
@echo off
:start
set /a var+=1
if %var% EQU 100 goto end
:: Code you want to run goes here
goto start
:end
echo var has reached %var%.
pause
exit
Первый набор команд под стартовой меткой завершает цикл до переменной,% var% достигает 100. После этого он уведомит вас и позволит вам выйти. Этот код можно адаптировать к вашим потребностям, изменив значение 100 на 17 и поместив свой код или используя команду вызова, а затем путь к пакетному файлу (Shift + Right Click on file и выберите "Копировать как путь" ), где размещен комментарий.