Set DriveList= "C: D: E:"
for %%A in (%DriveList%) Do (
Dir %%A*.txt
Dir %%A*.jpg
)
pause
这将返回列表中第一个目录的列表 - 没有任何文件,然后不会移动到列表中的下一个驱动器号 (D:)。需要的是执行驱动器 c,d 和 e 的 Dir 命令,并列出其中的任何 txt 或 jpg 文件。
您确实在评论部分得到了大量帮助,但无论如何,这是如何做到的:
@echo off
Set "DriveList=C: D: E:"
for %%i in (%DriveList%) Do (
dir /b /a-d %%i*.txt
dir /b /a-d %%i*.jpg
)
pause
请注意,以上将仅搜索每个驱动器的根目录,要搜索每个驱动器上的所有文件,您需要包括/S
开关:
@echo off
Set "DriveList=C: D: E:"
for %%i in (%DriveList%) Do (
dir /b /a-d /s %%i*.txt
dir /b /a-d /s %%i*.jpg
)
pause
我建议您通过打开cmd.exe并键入以下内容来阅读帮助:
set /?
for /?
dir /?
一个可能的替代方案:
@For %%A In (C: D: E:) Do @Where /R %%A *.txt *.jpg 2>Nul