![]() |
中国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 |