|
aaaaa690
新手上路
积分 3
发帖 3
注册 2009-4-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代码。
|
|
2009-4-8 04:38 |
|
|
aaaaa690
新手上路
积分 3
发帖 3
注册 2009-4-3
状态 离线
|
『第
2 楼』:
期盼中啊,急盼期待高手降临!
期盼中啊,期待高手降临!
|
|
2009-4-8 05:01 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第
3 楼』:
是不是写一个批处理,接受一个日期输入,并计算出其7天后的日期,然后把结果放到两个等号后面呢?
|
精简
[你的+我的+他的]=>[大家的] 个人网志 |
|
2009-4-8 06:36 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
4 楼』:
最好把程序和文件发上来一份
|
有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2009-4-8 08:52 |
|
|
aaaaa690
新手上路
积分 3
发帖 3
注册 2009-4-3
状态 离线
|
『第
5 楼』:
是写一个批处理,接受一个日期输入,并依次计算出其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日的数据提取。
|
|
2009-4-8 21:46 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
6 楼』:
datex 计算日期
FR修改配置文件
或者直接全用VBS
|
有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2009-4-9 00:37 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第
7 楼』:
@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
|
精简
[你的+我的+他的]=>[大家的] 个人网志 |
|
2009-4-9 02:10 |
|
|
lingxuyangf1
新手上路
积分 3
发帖 2
注册 2009-4-8
状态 离线
|
|
2009-4-9 02:26 |
|
|
a22124497
新手上路
积分 14
发帖 10
注册 2009-3-20
状态 离线
|
|
2009-4-10 00:11 |
|