【问题标题】:How to recursively list only video file types and exclude some folders ? in Windows 7如何递归仅列出视频文件类型并排除某些文件夹?在 Windows 7 中
【发布时间】:2020-05-11 13:38:10
【问题描述】:

我有很多内部硬盘,视频文件散布在各处。

我希望能够列出 DIR 和 SUBDIR 中的所有视频文件 (*.avi *.mp4 *.wmv...),同时排除列表中的一些文件夹,并将结果输出到文件中。

我尝试过使用:

dir "D:\Mini Clips Series" *.avi *.mp4 *.wmv /b /s /a-d >> E:\Temp\List.txt

及其变体。主要问题是指定几种文件类型似乎与 /s 开关不兼容...

非常感谢。

【问题讨论】:

    标签: windows cmd directory


    【解决方案1】:

    您可以使用 for 循环和 /R(递归)开关,将您的扩展作为一个集合传递。

    for /R "D:\Mini Clips Series" %i in (*.avi *.mp4 *.wav) do dir /b %i >> "E:\Temp\List.txt"
    

    /R 开关也递归子文件夹,因此您不需要dir 命令上的/s,如您所见。 (/a-d 我没有打扰,但你应该仍然可以使用它。)

    如果存在现有的“E:\Temp\List.txt”,您需要先将其删除,因为上述内容将附加到(而不是覆盖)该文件(>> 重定向而不是 > )。如果您不想这样做,可以改用它:

    del "E:\Temp\List.txt" & for /R "D:\Mini Clips Series" %i in (*.avi *.mp4 *.wav) do dir /b %i >> "E:\Temp\List.txt"
    

    & 允许两个命令位于同一命令行上。 del 首先完成,然后是 for 循环。

    您可以通过在命令提示符下键入 for / 来了解有关 for 命令的更多信息。

    【讨论】:

    • 非常感谢您快速而有帮助的回复。有一个小问题我还没有解决。它会生成一个“1”字符,以防止通过管道传输到 List.txt 文件。生成的命令类似于 dir /b D:\Mini Clips Series\Cat_door.mp4 1>>"D:\List.txt"。导致错误消息:系统找不到指定的文件。
    • @Spip:我在我的机器上测试了两个命令行,根本没有任何问题。之后我也查看了文本文件,它很好并且包含正确的文件。我的测试中唯一不同的是两个文件夹名称。您是否直接从我的答案中复制/粘贴代码?
    • 是的,我已经直接复制/粘贴了第一个命令,并且还在批处理文件中使用了一些细微的变化(对于 /R "D:\Mini Clips Series" %%i in (* .avi *.mp4 *.wmv) 执行目录 /b /a-d %%i >> "D:\List.txt")。两者都在 >> 之前生成了一个奇怪的“1”字符
    • @Spip:奇怪。您使用的是哪个 Windows 版本?我根据 WinVer.exe 在 Windows 10 版本 1909 上进行了测试,但在任何一个版本上都没有看到。
    • @Spip Win7 已被 MS 淘汰,所以我没有任何东西可以使用它来进一步提供帮助。对不起。 :-(
    【解决方案2】:

    好吧,经过几次尝试,终于找到了一个可以在Win7下运行的批处理脚本。

    @ECHO OFF
    SET test="D:\Mini Clips Series"
    FOR /R %test% %%F IN (*.avi *.mp4 *.wmv) DO (
    ECHO %%F >> List.txt)
    

    它以递归方式 (/s) 输出所有对应的文件名及其完整路径(类似于 dir /b /a-d)。

    再次感谢您的有用回复。

    【讨论】:

      【解决方案3】:

      您是否考虑过使用 Grep?它有各种 Windows 二进制文件,您可以将过滤从 'dir' 卸载到 grep。

      dir "folder" /S | grep "regex" > list.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        • 2013-07-28
        • 1970-01-01
        • 2020-12-24
        • 2020-05-11
        • 1970-01-01
        相关资源
        最近更新 更多