如何跨多个磁盘驱动器执行批处理文件


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

最新更新