中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎么查询并输出2个时间内的1段数据
« [1] [2] »
作者:
标题: [求助]怎么查询并输出2个时间内的1段数据 上一主题 | 下一主题
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 16 楼』:  

sed是第三方命令行工具

需要下载的,论坛似乎是有的,楼主自己搜索一下

2007-10-31 12:26
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
li104268
初级用户





积分 30
发帖 13
注册 2007-10-26
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by abcd at 2007-10-31 12:26 PM:
sed是第三方命令行工具

需要下载的,论坛似乎是有的,楼主自己搜索一下

知道了,谢谢你提醒

我想知道能不能不借住第三方工具把它作出来

2007-10-31 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 18 楼』:  

当然是可以实现的,不过效率很明显没有sed高的

有时候不要这么执着于非用windows自带命令不可

处理文本不就是为了效率吗?

如果纯研究的话,倒是可以去写,如果只是单纯的提高处理文本的速度的话

不妨考虑第三方工具

2007-10-31 13:30
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
li104268
初级用户





积分 30
发帖 13
注册 2007-10-26
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by abcd at 2007-10-31 01:30 PM:
当然是可以实现的,不过效率很明显没有sed高的

有时候不要这么执着于非用windows自带命令不可

处理文本不就是为了效率吗?

如果纯研究的话, ...

1为处理文档,2位学习。学习一下高人的逻辑思维,提高自己能力:P
希望有人帮写出纯ms-dos代码:)

2007-10-31 14:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 20 楼』:  


@echo off

for /f "skip=1 tokens=1-6" %%i in (t.txt) do (
  set dt=%%m
  setlocal enabledelayedexpansion
  set dt=!dt:年= !
  set dt=!dt:月= !
  set dt=!dt:日=!
  call :ys "!dt!"
  if "!string:~1!" gtr "2007-04-20" if "!string:~1!" lss "2007-10-20" echo %%i  %%j  %%k  %%l  %%m  %%n
  endlocal
)
pause
goto :eof

:ys
set string=
for %%a in (%~1) do (
   if %%a leq 9 (set str=0%%a) else (set str=%%a)
   set string=!string!-!str!
)
试试这个??

2007-10-31 14:58
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 21 楼』:  

这样就可以了
::
@echo off
setlocal EnableDelayedExpansion
echo 请输入起始日期 如:2007 3 29
set /p d=
call :lis "%d%" d
echo 请输入结束日期 如:2007 10 9
set /p h=
call :lis "%h%" h
set /p var=<a.txt
cls
echo %var%
for /f "delims=" %%i in (a.txt) do (
for /f "tokens=5 delims= " %%a in ("%%i") do (
  if not "%%a"=="" (
  set num=%%a
  set num=!num:年=-!
  set num=!num:月=-!
  set num=!num:日=!
  call :lis "!num!" num
  if !num! geq !d! if !num! leq !h! echo %%i
)))
pause
exit
:lis
for /f "tokens=1-3 delims=- " %%a in ("%~1") do (
  set m=0%%b
  set yy=0%%c
  set %2=%%a-!m:~-2!-!yy:~-2!
)
goto :eof




致精致简!
2007-10-31 17:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: