问题是关于实际的 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
)
由于您可以访问 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。