1

问题是关于实际的 DOS 批处理文件,而不是 Windowscmd.exe脚本文件。

如何在for循环中排除具有特定扩展名的文件?

@echo off

set myExtension=

for /r C:\ %%i in (*) do (
    ::notDesirableExtension
    if myExtension != gif or jpg
        ...
    echo myFiles >> F:\list.txt
) 
4

1 回答 1

3

由于您可以访问 FOR /R,这意味着您可以访问命令扩展。所以答案是微不足道的。

@echo off
for /r C:\ %%i in (*) do (
  if "%%~xi" neq ".jpg" if "%%~xi" neq ".gif" >>F:\list.txt echo %%i
)

但是根本没有理由使用 FOR 循环,因为您还应该可以访问 FINDSTR。这个 FINDSTR 解决方案应该快得多。并且不需要批处理文件。它在命令行上工作得很好。

dir /s /b /a-d-h-s | findstr /live ".jpg .gif" >F:\list.txt

直到 Windows 2000 才引入命令扩展,这不是真正的 DOS。

于 2012-06-12T22:22:42.303 回答