У меня есть папка с файлами с расширением .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