Board logo

标题: [原创]应要求,写的安排第一百天后执行程序的bat程序。 [打印本页]

作者: scriptor     时间: 2007-1-15 00:19    标题: [原创]应要求,写的安排第一百天后执行程序的bat程序。

看代码




@echo off
setlocal enabledelayedexpansion
set dy=%date:~0,4%
set dm=%date:~5,2%
set dd=%date:~8,2%
echo %dy%-%dm%-%dd%
echo 计算一百天后的日期.
echo.
pause>nul

rem 先检查日期dd是否在以下条件(3-12),一二月份特殊考虑!
rem 同时默认的是dy年份为平年,最后才考虑闰年.
rem 所以只要在最后dd上加一就可以了!

for %%i in (3,5,7,8,10,12) do (
rem Check Odd Month(单数月).
    if "%dm%" equ "%%i" (  
         set /a dm+=3
         set /a dd+=8
    rem 这时候,dm已经是双月份了.
         goto :checkdd
   )  
)
rem Check Even Month(双数月).
for %%j in (4,6,9,11) do (
    if "%dm%" equ "%%j" (  
         set /a dm+=3
         set /a dd+=9
    rem 这时候,dm已经是单月份了.
         goto :checkdd
    )
)

echo.
echo %dm%
pause

:jan-feb
  rem  考虑一月和二月的情况.
            if "%dm%" equ "1" (
                 set /a dm+=3
                 set /a dd+=10
                 goto :chckdd
             )
            if "%dm%" equ "2" (
                 set /a dm+=3
                 set /a dd+=10
                 goto :chckdd
             )

:checkdd
  rem 这时候,dm已经是双月份了.
  rem Check Date is Great 30 or not.
     if "%dd%" gtr "30" (
          rem 比如6月24日就要改成7月2日
          set dm%+=1
          set /a ddd=!dd!%-30
      )

  rem 这时,dm已经是单月份了.
  rem Check Date is Great 31 or not.
     if "%dd%" gtr "31" (
          rem 比如7月24日就要改成8月2日.
          set dm%+=1
          set /a ddd=!dd!%-31
     )

:checkYear
  rem 检查平年还是闰年,只要不是平年"... neq 0",就将dd再加一.
     set /a rmn=dy%\4
     if "%rmn%" neq "0" (set /a dd+=1)

::Output the Result.
echo The day in 100 is: %dy%-%dm%-%dd%
schtasks /create /tn "DeleteTask" /m %dm% /tr "程序的全路径"
pause>nul


不能看到结果,请高手指正。
谢谢!


─────────────────── 版务记录 ────────────────────
执行:namejm
原标题:[原创]应要求,写的一个程序。
说明:因标题过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。
处罚:因该用户在论坛里并非新人,理应对本论坛的发帖规定有所了解,故扣除该用户发帖所得
      4点积分中的2点。若在本提示发表三日之后尚未作出相应反应,将由版主强制修改标题。
建议:若对本处理有异议,请点
这里意见反馈 & 网友交流 栏目中发帖申辩;若确实属于不当处理,
      本人将取消本处理,若有必要,并将采取其他适当的措施来消除对你的不利影响。
─────────────────── 版务记录 ────────────────────


[ Last edited by scriptor on 2007-1-14 at 04:37 PM ]
作者: zh159     时间: 2007-1-15 00:34
日期可以用bat调用VBS的wscript.echo dateadd("d",100,date) 获取+-天数

for /f "tokens=*" %%i in ('"cscript //nologo *.vbs"') do echo %%i