【问题标题】:How to execute a batch file across several disk drives如何跨多个磁盘驱动器执行批处理文件
【发布时间】:2019-02-01 00:18:30
【问题描述】:
Set DriveList= "C: D: E:"
for %%A in (%DriveList%) Do (
    Dir %%A*.txt
    Dir %%A*.jpg
)
pause

这将返回列表中第一个目录的列表 - 没有任何文件,然后不会移动到列表中的下一个驱动器号 (D:)。需要对驱动器 c、d 和 e 执行 Dir 命令,并列出其中的任何 txt 或 jpg 文件。

【问题讨论】:

  • 天哪,你会踢自己的。您正在循环驱动器号并将%%A 设置为每个字母,但您没有在任何地方的代码中使用它。
  • 您将如何以及在何处调用脚本中的 %DriveList% 和/或 %%A 以使其遍历驱动器号?感谢帮助。非常感谢。
  • %%A\*.txt
  • 我已经修改了问题中的上述代码及其执行方式。窗台未解决...
  • 是的,因为你忘记了 \

标签: windows batch-file for-loop cmd


【解决方案1】:

您确实在 cmets 部分获得了大量帮助,但无论如何,方法如下:

@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 /?

【讨论】:

    【解决方案2】:

    一个可能的替代方案:

    @For %%A In (C: D: E:) Do @Where /R %%A *.txt *.jpg 2>Nul
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 2012-03-22
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      相关资源
      最近更新 更多