scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『楼 主』:
[原创]应要求,写的安排第一百天后执行程序的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 ]
|
|