中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 06:25
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]怎么查询并输出2个时间内的1段数据
可打印版本  1,578 / 20
第1楼 li104268 发表于 2007-10-30 18:54
初级用户 发帖 13 积分 30
[求助]怎么查询并输出2个时间内的1段数据
如题
请大家帮我写下
谢谢!!!
第2楼 li104268 发表于 2007-10-30 18:55
初级用户 发帖 13 积分 30
比如 2007年10月1日 到 2007年11月1日之间
第3楼 abcd 发表于 2007-10-30 19:57
银牌会员 发帖 739 积分 1,436
贴段文本上来做范例吧
第4楼 li104268 发表于 2007-10-30 20:54
初级用户 发帖 13 积分 30
序列号 订单 用户 出厂日期 维修日期 完结日期
de23422 13321 王学兵 2006年6月18日 2007年3月28日 2007年4月10日
fa22578 18032 李雪 2006年8月5日 2007年4月20日 2007年4月29日
。。。。。
。。。。。
。。。。。
ke23089 52108 赵广辉 2007年1月5日
le58212 32102 张耀峰 2007年1月5日 2007年10月20 2007年10月28日


格式就是这样,查询 2007年10月20日 到 2007年4月20日 中间的记录
第5楼 abcd 发表于 2007-10-30 21:35
银牌会员 发帖 739 积分 1,436
就是根据“维修日期”来判断罗
第6楼 li104268 发表于 2007-10-30 21:48
初级用户 发帖 13 积分 30
是的,只是这个表达式想不出该杂写,还望大家不吝赐教!!!
第7楼 26933062 发表于 2007-10-30 23:53
银牌会员 发帖 879 积分 2,268


[ Last edited by 26933062 on 2007-10-30 at 11:55 PM ]
第8楼 junchen2 发表于 2007-10-31 00:55
高级用户 发帖 219 积分 537 来自 杭州--半山
echo off
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年4月20日 " 111.txt') do (
if "%%f" == "2007年4月20日" set n=%%a& goto 2
)
:2
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年10月20 " 111.txt') do (
if "%%f" == "2007年10月20" set n1=%%a& goto 3
)
:3
sed -n "%n%,%n1%p" 111.txt|more>>fix_date.txt
pause

[ Last edited by junchen2 on 2007-10-31 at 01:07 AM ]
第9楼 junchen2 发表于 2007-10-31 01:25
高级用户 发帖 219 积分 537 来自 杭州--半山
不知道仅用SED能否写出

[ Last edited by junchen2 on 2007-10-31 at 01:39 AM ]
第10楼 lxmxn 发表于 2007-10-31 04:52
版主 发帖 4,938 积分 11,386
试试这个:
sed "/^\(]\+]\+\)\{4\}2007年4月20.*/,/^\(]\+]\+\)\{4\}2007年10月20.*/!d" UrTestFile.txt|sed "1d;$d"


[ Last edited by lxmxn on 2007-10-31 at 04:55 AM ]
第11楼 junchen2 发表于 2007-10-31 08:50
高级用户 发帖 219 积分 537 来自 杭州--半山
用lxmxn兄的代码试了一下好用。谢谢!

[ Last edited by junchen2 on 2007-10-31 at 08:52 AM ]
第12楼 li104268 发表于 2007-10-31 10:02
初级用户 发帖 13 积分 30
多谢大家:D
只是版主那个看不懂:(
第13楼 li104268 发表于 2007-10-31 10:32
初级用户 发帖 13 积分 30
Originally posted by 26933062 at 2007-10-30 11:53 PM:
第14楼 abcd 发表于 2007-10-31 11:10
银牌会员 发帖 739 积分 1,436
7楼写的是有问题的

例如:
第15楼 li104268 发表于 2007-10-31 11:36
初级用户 发帖 13 积分 30
Originally posted by junchen2 at 2007-10-31 12:55 AM:
echo off
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年4月20日 " 111.txt') do (
if "%%f" == "2007年4月20日" set n=%%a& goto 2
)
:2 ...


sed /? 提示不是内部或外部命令。。。
这个命令是什么?
这个批处理在我机器上无结果:(
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023