中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]抓取文件内容,有点小复杂
« [1] [2] »
作者:
标题: [求助]抓取文件内容,有点小复杂 上一主题 | 下一主题
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『楼 主』:  [求助]抓取文件内容,有点小复杂

文本文件,内容格式如下:

2010-10-20 16:02:20        122.400000
2010-10-20 16:02:25        122.400000
2010-10-20 16:02:26        122.400000
2010-10-20 16:02:27        122.400000
2010-10-20 16:02:28        122.400000
2010-10-20 16:02:29        122.400000
2010-10-20 16:02:30        122.400000
2010-10-20 16:02:31        0.000000
2010-10-20 16:02:32        122.300000
2010-10-20 16:02:33        122.200000
2010-10-20 16:02:34        122.300000
2010-10-20 16:02:35        122.200000
2010-10-20 16:02:36        122.300000
2010-10-20 16:02:37        122.200000
2010-10-20 16:02:38        122.300000
2010-10-20 16:02:39        122.200000
2010-10-21 08:31:17        122.300000
2010-10-21 08:31:22        0.000000
2010-10-21 08:31:27        122.300000
2010-10-21 08:31:32        122.300000
2010-10-21 08:31:37        122.300000
2010-10-21 08:31:42        122.300000
2010-10-21 08:31:47        122.300000
2010-10-21 08:31:52        122.400000
2010-10-21 08:31:57        122.300000
2010-10-21 08:32:02        122.400000
2010-10-21 08:32:07        122.300000
2010-10-21 08:32:12        122.400000
2010-10-21 08:32:17        122.200000
2010-10-21 08:32:22        122.300000
2010-10-21 08:32:27        122.200000
2010-10-21 08:32:32        122.300000
2010-10-21 08:32:37        122.400000
2010-10-21 08:32:42        122.300000
2010-10-22 16:02:32        122.300000
2010-10-22 16:02:33        122.200000
2010-10-22 16:02:34        122.300000
2010-10-22 16:02:35        122.200000
2010-10-22 16:02:36        122.300000
2010-10-22 16:02:37        122.200000
2010-10-22 16:02:38        122.300000
2010-10-22 16:02:39        122.200000
2010-10-22 08:31:17        122.300000
2010-10-23 08:31:42        122.300000
2010-10-23 08:31:47        122.300000
2010-10-23 08:31:52        122.400000
2010-10-23 08:31:57        122.300000
2010-10-23 08:32:02        122.400000
2010-10-23 08:32:07        122.300000
2010-10-23 08:32:12        122.400000
2010-10-23 08:32:17        122.200000
2010-10-24 08:31:42        122.300000
2010-10-24 08:31:47        122.300000
2010-10-24 08:31:52        122.400000
2010-10-24 08:31:57        122.300000
2010-10-24 08:32:02        122.400000
2010-10-24 08:32:07        122.300000
2010-10-24 08:32:12        122.400000
2010-10-25 08:31:37        122.300000
2010-10-25 08:31:42        122.300000
2010-10-25 08:31:47        122.300000
2010-10-25 08:31:52        122.400000
2010-10-25 08:31:57        122.300000
2010-10-25 08:32:02        122.400000

要求:根据判断时间点,把一周之内的文本内所有内容抓取出来,比如从2010年10月18日抓到2010年10月24日,抓出来的数据送到一个新的文本文件里,新的文本文件根据生成日期命名,比如叫20101024.txt。

因为这个文本文件,内容是不断增加,每天的数据都会不断的写在里面,有几个问题,一是判断一周这个时间段,从周一抓到周日,这个怎么判断哪天是周一,哪天是周日;二是生成出来的文件名称根据每次生成的日期自动命名,这个又是怎么写。

本人这方面小白,请高手指教,谢谢了

2010-10-25 10:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 2 楼』:  

这个很简单啊!

2010-10-25 14:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『第 3 楼』:  

那是怎么写呢,我对这个基本不了解。。

2010-10-25 15:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a113432
新手上路





积分 1
发帖 1
注册 2010-10-24
状态 离线
『第 4 楼』:  

不太懂 帮你顶上去

2010-10-25 16:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 5 楼』:  

日期格式是固定的吗?
是2010-02-01 还是 2010-2-1的格式?

2010-10-25 18:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 6 楼』:  

文件里只有一周吗?如果有很多周,你想得到什么?只得到一周的内容?还是按周输出。你说清楚点啊!

2010-10-25 19:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 7 楼』:  

echo 现在开始统计: >c:\%date:~0,10%.txt
for /f "tokens=1,2,3" %%c in (c:\123.txt) do (
if %%c GEQ 2010-10-24 if %%c LSS 2010-10-25 (echo %%c %%d        %%e >>c:\%date:~0,10%.txt))

2010-10-25 19:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by clinttt at 2010-10-25 19:25:
文件里只有一周吗?如果有很多周,你想得到什么?只得到一周的内容?还是按周输出。你说清楚点啊!

这个文件我只是举个例子,正式的话里面是所有日期的数据都在里面,输出是根据文件内容中的日期判断,抓取从周一到周日的数据,一周抓一次,比如第一次从2010年10月18日抓到24日,下次运行就从2010年10月25日抓到31日,依此类推,(一周抓一次,这个和脚本无关,我可以在计划任务中定义)日期格式随便,可以是2010-02-01,也可以是2010-2-1。

[ Last edited by acmilanxr on 2010-10-26 at 10:18 ]

2010-10-26 09:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by clinttt at 2010-10-25 19:27:
echo 现在开始统计: >c:\%date:~0,10%.txt
for /f "tokens=1,2,3" %%c in (c:\123.txt) do (
if %%c GEQ 2010-10-24 if %%c LSS 2010-10-25 (echo %%c %%d        %%e >>c:\%date:~ ...

这个再帮我改下吧,根据内容判断抓周一到周日的内容,还有就是我运行你这个脚本,输出文件没有生成。。。

2010-10-26 10:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 10 楼』:  

没有生成是因为你没有按脚本准备文件,以及需要知道输入文件的路径。

2010-10-26 14:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by clinttt at 2010-10-26 14:05:
没有生成是因为你没有按脚本准备文件,以及需要知道输入文件的路径。

现在可以了,但关于从文件内容中判断日期,这个怎么写,比如2010年10月18日是周一,24日是周日,25日又是周一,怎么判断呢?

2010-10-26 14:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 12 楼』:  

@Echo Off
set date0=2017-07-26

set /a year1=%date0:~0,4%%%4
set /a month1=%date0:~5,2%-1
set /a month2=%date0:~5,2%+1
set /a reye=(%date0:~0,4%-1970+1)/4+365*(%date0:~0,4%-1970)
if %date0:~5,2% LEQ 2 (set /a remo=%date0:~5,2%/2+30*%month1%) else (
if %date0:~5,2% LEQ 8 (if %year1%==0 (set /a remo=%date0:~5,2%/2+30*%month1%-1) else (
                                set /a remo=%date0:~5,2%/2+30*%month1%-2)) else (
                       if %year1%==0 (set /a remo=%month2%/2+30*%month1%-1) else (
                                set /a remo=%month2%/2+30*%month1%-2)))
set year1=
set month1=
set month2=
set /a reda=%date0:~-2%-1
set date0=
set /a week1=(%reye%+%remo%+%reda%+4)%%7
set reye=
set remo=
set reda=
if %week1%==1 set week0=星期一
if %week1%==2 set week0=星期二
if %week1%==3 set week0=星期三
if %week1%==4 set week0=星期四
if %week1%==5 set week0=星期五
if %week1%==6 set week0=星期六
if %week1%==0 set week0=星期日
set week1=
echo %week0%
set week0=

2010-10-26 14:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by clinttt at 2010-10-26 14:51:
@Echo Off
set date0=2017-07-26

set /a year1=%date0:~0,4%%%4
set /a month1=%date0:~5,2%-1
set /a month2=%date0:~5,2%+1
set /a reye=(%date0:~0,4%-1970+1)/4+365*(%date0:~0,4%-1970)
if %date0:~ ...

连在一起怎么弄。。。。两个脚本拼在一起,从哪里开始插入?

echo 现在开始统计:> C:\%date:~0,10%.txt
for /f "tokens=1,2,3" %%c in (C:\OV-BLM-001_2010-10-20_16-02-20.txt) do (if %%c GEQ 2010-10-18 if %%c LEQ 2010-10-24 (echo %%c %%d %%e >> C:\%date:~0,10%.txt))





@Echo Off
set date0=2010-10-26

set /a year1=%date0:~0,4%%%4
set /a month1=%date0:~5,2%-1
set /a month2=%date0:~5,2%+1
set /a reye=(%date0:~0,4%-1970+1)/4+365*(%date0:~0,4%-1970)
if %date0:~5,2% LEQ 2 (set /a remo=%date0:~5,2%/2+30*%month1%) else (
if %date0:~5,2% LEQ 8 (if %year1%==0 (set /a remo=%date0:~5,2%/2+30*%month1%-1) else (
                                set /a remo=%date0:~5,2%/2+30*%month1%-2)) else (
                       if %year1%==0 (set /a remo=%month2%/2+30*%month1%-1) else (
                                set /a remo=%month2%/2+30*%month1%-2)))
set year1=
set month1=
set month2=
set /a reda=%date0:~-2%-1
set date0=
set /a week1=(%reye%+%remo%+%reda%+4)%%7
set reye=
set remo=
set reda=
if %week1%==1 set week0=星期一
if %week1%==2 set week0=星期二
if %week1%==3 set week0=星期三
if %week1%==4 set week0=星期四
if %week1%==5 set week0=星期五
if %week1%==6 set week0=星期六
if %week1%==0 set week0=星期日
set week1=
echo %week0%
set week0=

2010-10-26 15:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clinttt
新手上路





积分 18
发帖 16
注册 2010-1-6
状态 离线
『第 14 楼』:  

还没明白你的意思?
是不是这样的?你周三运行脚本,你就想输出本周日到周六的内容?
只输出本周还是上周的?

2010-10-26 16:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
acmilanxr
新手上路





积分 12
发帖 12
注册 2010-10-21
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by clinttt at 2010-10-26 16:08:
还没明白你的意思?
是不是这样的?你周三运行脚本,你就想输出本周日到周六的内容?
只输出本周还是上周的?

哦,是这样,这个批处理脚本会每周日运行一遍,把那个文本文件中的内容,根据判断日期,就是2010-10-25这一列,抓取其中本周一至本周日的数据,送到另一个新的文本文件中,比如这周日运行,抓取这周的所有数据,下周的周日运行,就抓取下周的所有数据,依此类推,文件名通过运行当天的日期命名。

2010-10-26 16:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: