Подтвердить что ты не робот

Как сделать цикл for в командной строке Windows?

Мне было интересно, возможно ли это? Я не знаком с использованием командной строки Windows, но я должен использовать ее для проекта, над которым я работаю. У меня есть несколько файлов, для которых мне нужно выполнить функцию для каждого. Я привык работать с python, но, очевидно, это немного по-другому, поэтому я надеялся на какую-то помощь.

В основном мне нужен цикл for для итерации через 17 файлов в папке, выполнения функции на каждом (с использованием конкретного программного обеспечения, которое у меня есть здесь для проекта), а затем будет выводиться файл с уникальным именем (функция обычно требует, чтобы я указывал имя выходного файла), я бы сосал его и просто сделаю это вручную для каждого из 17, но в основном он создает базу данных файла, а затем сравнивает его с каждой из 17. Он должен повторяться через несколько сотен раз. Использование цикла for может сэкономить время работы.

Предложения?

4b9b3361

Ответ 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 и выберите "Копировать как путь" ), где размещен комментарий.