如何为文件夹中的每个文件执行一些操作?

我有一个扩展名为.foo的文件夹。

我需要一个batch file来执行该扩展名的文件夹中的每个文件的一些命令。

我应该怎么做?

似乎我需要一个循环获取文件列表后,但我不知道如何在batch file中做到这一点…(我在Windows XP中,但我想答案会在其他Windows上有效)。

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

使用每个文件名作为第一个参数运行命令command

请记住,在batch file中,在命令行中必须使用%% ,以上仅使用单个%

如果您需要完整path名或recursion获取文件,请使用for命令的/R开关。

例:

 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
… [等等..]

您可以使用FOR循环对每个文件执行一个操作

 FOR %%parameter IN (set) DO command 

喜欢

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