中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 16:38
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » dos 做批处理实现连续提取数据 查看 841 回复 8
楼 主 dos 做批处理实现连续提取数据 发表于 2009-04-08 04:38 ·  中国 江西 上饶 德兴市 电信
新手上路
积分 3
发帖 3
注册 2009-04-03 05:48
17年会员
UID 141998
性别 男
状态 离线
a.property文件内容如下:
=============================================
adf
fdsf
dfsafdafa
fsdaf
#日期限制,如果这两个参数没有设置则只查询当天
BeginDate = 2009-03-2
EndDate = 2009-03-2
#统计点间隔,单位为分钟
MinutesPeriod = 30
=============================================
run.exe运行时调用a.property(run.exe每次运行大概需要40秒),运行结果可以提取2009-03-2日的数据,现要求做一个批处理文件b.bat,运行b.bat文件可以实现只要提示用户输入一次年月日如(20090408),就可以依次提取从20090408日到20090414日 这7天的数据,请高手赐教,给出b.bat代码。
2 期盼中啊,急盼期待高手降临! 发表于 2009-04-08 05:01 ·  中国 江西 上饶 德兴市 电信
新手上路
积分 3
发帖 3
注册 2009-04-03 05:48
17年会员
UID 141998
性别 男
状态 离线
期盼中啊,期待高手降临!
3 发表于 2009-04-08 06:36 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
是不是写一个批处理,接受一个日期输入,并计算出其7天后的日期,然后把结果放到两个等号后面呢?
精简
=> 个人网志
4 发表于 2009-04-08 08:52 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
最好把程序和文件发上来一份

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
5 发表于 2009-04-08 21:46 ·  中国 江西 上饶 德兴市 电信
新手上路
积分 3
发帖 3
注册 2009-04-03 05:48
17年会员
UID 141998
性别 男
状态 离线
是写一个批处理,接受一个日期输入,并依次计算出其7天后的日期,然后把结果放到两个等号后面,如接受一个日期收入20090409输入,然后a.property文件内容改变成:
=============================================
adf
fdsf
dfsafdafa
fsdaf
#日期限制,如果这两个参数没有设置则只查询当天
BeginDate = 2009-04-09
EndDate = 2009-04-09
#统计点间隔,单位为分钟
MinutesPeriod = 30
=============================================
保存a.property文件内容,运行run.exe(可随便设置一个run.exe代码作为演示,如输出"ok1"的代码)完成数据提取,并保存数据(ok1)。

然后再自动改变a.property文件内容为:
=============================================
adf
fdsf
dfsafdafa
fsdaf
#日期限制,如果这两个参数没有设置则只查询当天
BeginDate = 2009-04-10
EndDate = 2009-04-10
#统计点间隔,单位为分钟
MinutesPeriod = 30
=============================================
再保存a.property文件内容,运行run.exe(可随便设置一个run.exe代码作为演示,如输出"ok2"的代码)完成数据提取,并保存数据(ok2)。

系统依次执行,直到完成2009-04-15日的数据提取。
6 发表于 2009-04-09 00:37 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
datex 计算日期
FR修改配置文件

或者直接全用VBS

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
7 发表于 2009-04-09 02:10 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off&setlocal enabledelayedexpansion
set msn= 31 28 31 30 31 30 31 31 30 31 30 31
set ms0= 31 29 31 30 31 30 31 31 30 31 30 31
:lp
set /p gd=输入开始日期(yyyy-mm-dd):
set gd=%gd:~0,10%
if not "%gd:~4,1%%gd:~7,1%"=="--" goto :err
set/a d=1%gd:~8,2%-100,m=1%gd:~5,2%-100,y=1%gd:~0,4%-10000 || goto :err
if %y% lss 1800 goto :err
if %y% gtr 2050 goto :err
if %m% gtr 12 goto :err
if %m% leq 0 goto :err
if %d% leq 0 goto :err
set/a vy=y%%4,vm=^(m+11^)%%12*3
if %vy%==0 (set ms=%ms0%) else (set ms=%msn%)
set am=!ms:~%vm%,3!
if %d% gtr %am% goto :err
::前面校验日期的有效性,并把年,月,日分别存到变量y,m,d

set ch=7

::计算七天后日期
set/a d+=ch
if %d% gtr %am% (set/a m+=1
if !m! gtr 12 (set/a y+=1,m=1)
set/a d-=am
)

::调整日期格式
if %m% lss 10 (set m=0%m%)
if %d% lss 10 (set d=0%d%)
set date-x=%y%-%m%-%d%
echo 输入的日期是:%gd%
echo 该日期%ch%天后是:%date-x%
echo.
echo.
::修改文件数据
(echo =============================================
for /f "tokens=1* delims==" %%a in (a.property) do (
if "%%b"=="" (echo.%%a) else (
set "str=%%a"
if "!str:~0,9!"=="BeginDate" (echo.%%a=%gd%)
if "!str:~0,7!"=="EndDate" (echo.%%a=%date-x%)
if "!str:~0,6!"=="Minute" (echo.%%a=%%b)
)
)
echo =============================================)>a.temp
type a.temp>a.property
type a.temp&del a.temp
pause
goto :eof

:err
echo 输入格式有错!请重新输入.&goto :lp
精简
=> 个人网志
8 发表于 2009-04-09 02:26 ·  中国 陕西 西安 电信
新手上路
积分 3
发帖 2
注册 2009-04-08 08:51
17年会员
UID 142421
性别 男
状态 离线
学习了
9 发表于 2009-04-10 00:11 ·  中国 江苏 南京 电信
新手上路
积分 14
发帖 10
注册 2009-03-20 01:38
17年会员
UID 141797
性别 男
状态 离线
学习了
论坛跳转: