问题是关于实际的DOS批处理文件,而不是Windows cmd.exe
脚本文件。
如何排除在for
循环中处理特定扩展名的文件?
@echo off
set myExtension=
for /r C:\ %%i in (*) do (
::notDesirableExtension
if myExtension != gif or jpg
...
echo myFiles >> F:\list.txt
)
答案 0 :(得分: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。