2014-09-23 41 views
3

利用批处理文件,它足够简单处理,在其文件名或扩展共享一个字符串的所有文件,如:反转FOR命令的意义?

FOR /R %F IN (*.EXE) DO @ECHO %F 

但是,如果我想反转文件集的意义吗?比如,处理所有不要以.EXE结尾的文件?

FOR /R %F IN (anything-but-exe) DO @ECHO %F 

我无法找到任何东西,似乎是我一直在寻找一种读的FOR /?

回答

5
for /f "tokens=* delims=" %a in ('dir /s /b /a:-d^|findstr /i/e/v ".exe" ') do @echo %a 
+2

这将过滤out'file tax.exempt.txt'因此'findstr/i/e/v“.exe”'比使用find更好。 OP也希望进行递归搜索。 – foxidrive 2014-09-23 01:45:41

+1

@foxidrive - 好点。将被固定 – npocmaka 2014-09-23 02:03:11

4

输出这应该是另一种选择:

FOR /R %F IN (*.*) DO @if /i not "%~xF"==".exe" ECHO %F 
+0

是的,这也适用,但@应该在IF前面,而不是在命令行上禁止所有不必要的输出 – 2014-09-23 17:03:49