我有一个文件夹,其中的文件扩展名为 .foo。
我需要一个批处理文件来对该文件夹中具有该扩展名的每个文件执行一些命令。
我该怎么做?
似乎我需要在获取文件列表后进行循环,但我不知道如何在批处理文件中执行此操作...(我在 Windows XP 上,但我猜答案在其他 Windows 上也有效)。
答案1
FOR %%F in (*.foo) DO command %%F
command
使用每个文件名作为第一个参数来操作该命令。
请记住,当在批处理文件中必须在命令行上使用%%
where 时,上面只会使用单个%
。
如果需要完整路径名,或者要递归获取文件,请使用/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\agentsvr.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
... [等等..]
答案2
您可以使用 FOR 循环对每个文件执行操作
FOR %%parameter IN (set) DO command
喜欢
FOR %%G in ("C:\*") DO echo %%G