Board logo

标题: FOR命令如何搜索一定大小(1~2M)的文件 [打印本页]

作者: huanbei     时间: 2008-10-30 20:25    标题: FOR命令如何搜索一定大小(1~2M)的文件

我想搜索含有字符串"good"的文件,同时限定搜索文件的大小在1~2M之间。
该怎样使用FOR + FIND?
作者: DOSforever     时间: 2008-10-31 01:22
先来说一下如何指定文件大小的范围,这是一个参数,不是某个具体的命令,而且这个参数差不多可以在许多操作对象是文件为参数的 4DOS 命令中使用,例如,指定大小在1~2M之间的文件,如果这里的 1M=1048576byte ,那么可以用 [s1M,2M] ;如果这里的 1M=1,000,000byte ,那么可以用 [s1m,2m];同样,k 和 K 的区别也是如此;你也可以指定具体字节数,比如 [s1024,2048] 。
具体到某个命令,比如查找文件大小为1M~2M之间的文件,可以
dir /[s1M,2M]
dir /[s1M,2M] *.txt

那么如何搜索字符串呢?是 FFIND 命令,搜索含有字符串"good"的文件,同时限定搜索文件的大小在1~2M之间可以这样用:
ffind /[s1M,2M] /t"good" *.*
作者: huanbei     时间: 2008-11-2 00:46
也就是说,在XP中cmd下,无法做到我想要的功能。
作者: DOSforever     时间: 2008-11-2 00:50
Windows 中可以用 4NT 或 Take Command ,它们是 4DOS 在 Windows 下的继承。
作者: HAT     时间: 2008-11-2 10:38    标题: Re 3楼

那你应该到批处理室去提问^_^
作者: huanbei     时间: 2008-11-2 16:07


  Quote:
Originally posted by HAT at 2008-11-2 10:38:
那你应该到批处理室去提问^_^

谢谢。
作者: clian76     时间: 2008-11-2 16:54
你怎么没转发到批处理室去呢,我还想去那找了回复呢,空跑了,以后这种问题还是去批处理室问吧,问对地方的得到的结果也快些!
if exist d:\查找结果.txt del/q/f d:\查找结果.txt
::FOR里 F:\test\*.lst 换成想查找的文件类型和路径
For /f "delims=" %%i In ('dir/s/b/d F:\test\*.lst') do (
    set fpath=%%i
    set size=%%~zi
    call :2
)
start notepad.exe d:\查找结果.txt
exit

:2
if 1000000 LEQ %size% if %size% LEQ 2000000 (
echo.>>d:\查找结果.txt
echo 文件: [ %fpath% ]>>d:\查找结果.txt
echo 大小: [ %size% 字节 ]>>d:\查找结果.txt
find /i "这里换成你想查找的字符串" "%fpath%">>d:\查找结果.txt
goto :eof)
这里你至少改两处地方,
1、For /f "delims=" %%i In ('dir/s/b/d F:\test\*.lst') do (
上面这句红色标示的路径改成你想查找的路径和文件顾类型
2、find /i "这里换成你想查找的字符串" "%fpath%">>d:\查找结果.txt
这里红色标示改成你想查找的文字内容。
我测试通过 CMD@XP

[ Last edited by clian76 on 2008-11-2 at 17:00 ]