中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » FOR命令如何搜索一定大小(1~2M)的文件
作者:
标题: FOR命令如何搜索一定大小(1~2M)的文件 上一主题 | 下一主题
huanbei
初级用户





积分 32
发帖 14
注册 2008-10-26
状态 离线
『楼 主』:  FOR命令如何搜索一定大小(1~2M)的文件

我想搜索含有字符串"good"的文件,同时限定搜索文件的大小在1~2M之间。
该怎样使用FOR + FIND?



用过DOS的人
2008-10-30 20:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 2 楼』:  

先来说一下如何指定文件大小的范围,这是一个参数,不是某个具体的命令,而且这个参数差不多可以在许多操作对象是文件为参数的 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" *.*



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-10-31 01:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huanbei
初级用户





积分 32
发帖 14
注册 2008-10-26
状态 离线
『第 3 楼』:  

也就是说,在XP中cmd下,无法做到我想要的功能。



用过DOS的人
2008-11-2 00:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 4 楼』:  

Windows 中可以用 4NT 或 Take Command ,它们是 4DOS 在 Windows 下的继承。



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-2 00:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  Re 3楼

那你应该到批处理室去提问^_^



2008-11-2 10:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huanbei
初级用户





积分 32
发帖 14
注册 2008-10-26
状态 离线
『第 6 楼』:  



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

谢谢。



用过DOS的人
2008-11-2 16:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 7 楼』:  

你怎么没转发到批处理室去呢,我还想去那找了回复呢,空跑了,以后这种问题还是去批处理室问吧,问对地方的得到的结果也快些!
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 ]

2008-11-2 16:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: