Board logo

标题: dos 做批处理实现连续提取数据 [打印本页]

作者: aaaaa690     时间: 2009-4-8 04:38    标题: 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代码。
作者: aaaaa690     时间: 2009-4-8 05:01    标题: 期盼中啊,急盼期待高手降临!

期盼中啊,期待高手降临!
作者: netbenton     时间: 2009-4-8 06:36
是不是写一个批处理,接受一个日期输入,并计算出其7天后的日期,然后把结果放到两个等号后面呢?
作者: yishanju     时间: 2009-4-8 08:52
最好把程序和文件发上来一份
作者: aaaaa690     时间: 2009-4-8 21:46
是写一个批处理,接受一个日期输入,并依次计算出其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日的数据提取。
作者: yishanju     时间: 2009-4-9 00:37
datex 计算日期
FR修改配置文件

或者直接全用VBS
作者: netbenton     时间: 2009-4-9 02:10
@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
作者: lingxuyangf1     时间: 2009-4-9 02:26
学习了
作者: a22124497     时间: 2009-4-10 00:11
学习了