Назад | Перейти на главную страницу

Как сделать какие-то действия для каждого файла в папке?

У меня есть папка с файлами с расширением .foo.

Мне нужен командный файл для выполнения некоторых команд для каждого файла в этой папке с таким расширением.

Как мне это сделать?

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

FOR %%F in (*.foo) DO command %%F

Управляет командой command с каждым именем файла в качестве первого аргумента.

Помните, что в пакетном файле вы должны использовать %% где в командной строке выше будет использоваться только один %с.

Если вам нужен полный путь или рекурсивное получение файлов, используйте /R переключатель команды for.

Пример:

C:\WINDOWS> FOR %F in (*.exe) DO @echo %F

explorer.exe
FramePkg.exe
gsk7bui.exe
hh.exe
IsUninst.exe
NOTEPAD.EXE
notepad1.exe
regedit.exe
slrundll.exe
TASKMAN.EXE
twunk_16.exe
twunk_32.exe
uninst.exe
winhelp.exe
winhlp32.exe

C:\WINDOWS> FOR /R %F in (*.exe) DO @echo %F

C: \ WINDOWS \ explorer.exe
C: \ WINDOWS \ FramePkg.exe
C: \ WINDOWS \ gsk7bui.exe
C: \ WINDOWS \ hh.exe
C: \ WINDOWS \ IsUninst.exe
C: \ WINDOWS \ NOTEPAD.EXE
C: \ WINDOWS \ notepad1.exe
C: \ WINDOWS \ regedit.exe
C: \ WINDOWS \ slrundll.exe
C: \ WINDOWS \ TASKMAN.EXE
C: \ WINDOWS \ twunk_16.exe
C: \ WINDOWS \ twunk_32.exe
C: \ WINDOWS \ uninst.exe
C: \ WINDOWS \ winhelp.exe
C: \ WINDOWS \ winhlp32.exe
... [еще больше] ...
C: \ WINDOWS \ system32 \ accwiz.exe
C: \ WINDOWS \ system32 \ actmovie.exe
C: \ WINDOWS \ system32 \ ahui.exe
C: \ WINDOWS \ system32 \ alg.exe
C: \ WINDOWS \ system32 \ append.exe
C: \ WINDOWS \ system32 \ arp.exe
C: \ WINDOWS \ system32 \ asr_fmt.exe
C: \ WINDOWS \ system32 \ asr_ldm.exe
... [и т.д..]
C: \ WINDOWS \ system32 \ dllcache \ accwiz.exe
C: \ WINDOWS \ system32 \ dllcache \ actmovie.exe
C: \ WINDOWS \ system32 \ dllcache \ admin.exe
C: \ WINDOWS \ system32 \ dllcache \ agentvr.exe
C: \ WINDOWS \ system32 \ dllcache \ ahui.exe
C: \ WINDOWS \ system32 \ dllcache \ alg.exe
C: \ WINDOWS \ system32 \ dllcache \ append.exe
C: \ WINDOWS \ system32 \ dllcache \ arp.exe
... [и так далее..]

Вы можете использовать цикл FOR для выполнения действия с каждым файлом

FOR %%parameter IN (set) DO command 

подобно

FOR %%G in ("C:\*") DO echo %%G