古之成大事者,不唯有超世之才,亦唯有坚韧不拔之志也!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  3 随笔 :: 44 文章 :: 1 评论 :: 0 Trackbacks
特别需要注意的是赋值中间不能有空格如set TmpFile=tmp.ini
该批处理脚本的作用是查找日期大于等于lastUploadDir.ini配置文件所写日期的 6位日期的文件夹如
080526等,然后把这些目录所有文件打成zip包如080526.zip 然后ftp到目的服务器,回写
lastUploadDir.ini
为最大上送日期,删除本地目录所有zip文件


@echo off
@echo -----------------处理开始%date%%time%
setlocal ENABLEDELAYEDEXPANSION
set TmpFile
=tmp.ini
set /p ini
=<lastUploadDir.ini
set /a datesub
=0
set PosDir
=D:\CallCenter\Server\Pos\
rem 获取当前日期
::set nowdate
=%date:~0,4%%date:~5,2%%date:~8,2%
::set tempDate
=%nowdate%
call :DATESUB %datesub% DN
set nowdate
=%DN%
set tempDate
=%DN%
@echo %tempDate%
:FindDir
   set /a datesub
=%datesub% +1

   set nowDir
=%PosDir%%tempDate:~2,6%

   if exist 
"%nowDir%" (
     @echo  目录存在%nowDir% 
     @echo     --开始压缩%nowDir%  %date%%time%
     rar a -inul %nowDir%.zip %nowDir% 
     @echo     --压缩完成%nowDir% %date%%time%
   ) else (
     @echo  目录不存在%nowDir% 
     goto :FindDirError
   )
   
   if 
"%tempDate%" GTR "%ini%" (
      call :DATESUB %datesub% DN
      set tempDate
=!DN!
      goto :FindDir
   )
   
  
:FindDirSucess
   ::所有目录成功
,把日期写入ini文件
   >
"%TmpFile%" echo %nowdate%
   move /y 
"%~dp0%TmpFile%" lastUploadDir.ini
 
:FindDirError

@echo 开始上传所有zip文件 %date%%time%
ftp -v -n -s:ftpconfig.ini 
200.200.200.2 
@echo 开始上传所有zip文件 %date%%time%

@echo 开始删除本地所有zip文件 %date%%time%
del %PosDir%*.zip 
@echo 结束删除本地所有zip文件 %date%%time%

endlocal
@echo ----------------------处理完成 %date%%time%
GOTO :EOF








:DATESUB
::日期相减函数
::格式 call :DATESUB 需要减的天数 接收结果的变量
::%
1 =>_tian
::%
2 =>receive
::取n天之前的日期.set _tian
=n下面这句中的n代表天数.
set 
"_tian=%1"
>tmptmp.vbs echo wscript.echo dateadd(
"d",-%_tian%,date)
for /f 
"tokens=1,2,3* delims=-" %%i in ('cscript /nologo tmptmp.vbs') do (
set 
"y=%%i"&set "m=%%j"&set "d=%%k"
)
if %m% LSS 
10 set "m=0%m%"
if %d% LSS 
10 set "d=0%d%"
set 
"%2=%y%%m%%d%"
goto :EOF
::设定结果变量
,结束call调用


posted on 2008-05-28 08:31 goto 阅读(397) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: