联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
for /f "delims=" %%i in ('dir/b *.bat') do findstr /i "60" %%i>nul||echo %%i
Originally posted by zh159 at 2008-4-23 10:18: 试试这个for /f "delims=" %%i in ('dir/b *.bat') do findstr /i "60" %%i>nul||echo %%i
Originally posted by 26933062 at 2008-4-23 10:32: 谢谢,不过有上千个文件,这样用findstr 命令,可能效率会很慢吧。 就是不想用for ,其实文件中含 60 的都在最后一行,findstr 可以通过这个来完成吗?
@echo off for /f "delims=" %%i in ('dir/b *.txt') do ( for /f %%j in (%%i) do set str=%%j call :lp "%%i" ) pause exit :lp if not "%str%" == "60" echo %~1 goto :eof
@echo off for /f "delims=" %%i in ('dir/b *.txt') do set $%%~nxi=$ for /f "delims=" %%i in ('findstr /im "60" *.txt 2^>nul') do set $%%~nxi= for /f "delims=$=" %%i in ('set $') do echo %%i pause exit