中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 15:46
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » dos 做批处理实现连续提取数据
可打印版本  839 / 8
第1楼 aaaaa690 发表于 2009-04-08 04:38
新手上路 发帖 3 积分 3
dos 做批处理实现连续提取数据
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楼 aaaaa690 发表于 2009-04-08 05:01
新手上路 发帖 3 积分 3
期盼中啊,急盼期待高手降临!
期盼中啊,期待高手降临!
第3楼 netbenton 发表于 2009-04-08 06:36
银牌会员 发帖 752 积分 1,916 来自 广西
是不是写一个批处理,接受一个日期输入,并计算出其7天后的日期,然后把结果放到两个等号后面呢?
第4楼 yishanju 发表于 2009-04-08 08:52
银牌会员 发帖 1,357 积分 1,488
最好把程序和文件发上来一份
第5楼 aaaaa690 发表于 2009-04-08 21:46
新手上路 发帖 3 积分 3
是写一个批处理,接受一个日期输入,并依次计算出其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楼 yishanju 发表于 2009-04-09 00:37
银牌会员 发帖 1,357 积分 1,488
datex 计算日期
FR修改配置文件

或者直接全用VBS
第7楼 netbenton 发表于 2009-04-09 02:10
银牌会员 发帖 752 积分 1,916 来自 广西
@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楼 lingxuyangf1 发表于 2009-04-09 02:26
新手上路 发帖 2 积分 3
学习了
第9楼 a22124497 发表于 2009-04-10 00:11
新手上路 发帖 10 积分 14
学习了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023