中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 执行完批处理不自动退出 上一主题 | 下一主题
sjwjz
新手上路





积分 1
发帖 1
注册 2010-2-21
状态 离线
『楼 主』:  执行完批处理不自动退出

借用了本版精华中的求N天前日期的批处理(http://www.cn-dos.net/forum/viewthread.php?tid=31296&fpage=1&highlight=%E6%97%A5%E6%9C%9F)然后稍加改动,做了一个实现自动清理两天前目录的批处理。目录格式一律为20100224、20100225、20100226格式。但是运行完后命令却不能自动退出,请各位高人指教。谢谢。代码如下:
@echo off
setlocal enabledelayedexpansion

:Main
set day=%date%
set days=0
::echo.&echo.


:: 提取日期
set /a sy=%date:~0,4%,sm=%date:~5,2%,sd=%date:~8,2%

::指定天数
set /a sd-=2

if %sd% leq 0 call :count

::echo.&echo.
set sm=0%sm%
set sd=0%sd%
set target=%sy%%sm:~-2%%sd:~-2%
::删除文件
for /D %%i in (*) do  if %target% gtr %%i  rmdir /s /q %%i
pause>nul
goto Main

:count
set /a sm-=1
if !sm! equ 0 set /a sm=12, sy-=1
call :days
set /a sd+=days
if %sd% leq 0 goto count
goto :eof

:days
:: 获取指定月份的总天数
set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
set /a max=28+leap
set num=0
set str=31 %max% 31 30 31 30 31 31 30 31 30 31
for %%i in (%str%) do (
    set /a num+=1
    if %sm% equ !num! set days=%%i&goto :eof
)
goto :eof
[ Last edited by sjwjz on 2010-2-26 at 17:54 ]

2010-2-26 17:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

把@echo off删掉,再运行一遍,想想为什么。



2010-2-26 18:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: