中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]创建并维护以日期为名字的临时目录
作者:
标题: [原创]创建并维护以日期为名字的临时目录 上一主题 | 下一主题
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『楼 主』:  [原创]创建并维护以日期为名字的临时目录


setlocal enabledelayedexpansion
::设置临时目录的位置(可自行修改)
:: set dp=!userprofile!\my documents\临时目录
set dp=d:\chdoc\临时目录
::清除空目录
for /d %%i in ("!dp!\*") do rd "%%i"
::创建新目录
md "!dp!\!date!"
::更新虚拟盘符
subst /d t:
subst t: "!dp!"
if not [%1]==[] (
        ::将文件移动到临时目录
        call :MoveToTemp %*
) else (
        ::打开临时目录
        start "" "t:\!date!"
)
:::::::::::::::::::::::::::::::::::::::::::::::
::移动旧目录
call :MoveOld
exit /b
::移动本月份以前的目录到"临时目录\~old"
:MoveOld
if not exist "!dp!\~old" md "!dp!\~old"
for /d %%i in ("!dp!\*") do (
        set dir=%%i
        if not "!dir:~-9,-7!"=="!date:~-9,-7!" (
                if /i not "!dir!" == "!dp!\~old" (
                        move "!dir!" "!dp!\~old"
                )
        )
)
exit /b
::将参数所指定的所有文件移动到临时目录
:MoveToTemp
if not [%1]==[] (
        move %1 "!dp!\!date!"
        shift /1
        goto :MoveToTemp
)
exit /b
[ Last edited by sonicandy on 2007-10-4 at 11:25 AM ]

2007-9-12 20:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
422904z
初级用户





积分 74
发帖 37
注册 2007-6-28
状态 离线
『第 2 楼』:  

!应为%吧

2007-9-13 20:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『第 3 楼』:  

setlocal enabledelayedexpansion
因为这里启用了变量延迟,所以干脆把所有%都用!代替
这样看起来整齐一些

2007-9-14 07:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: