我有一个扩展名为.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