中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手来帮我写个批处理吧~删文件个目录的【已经解决】
作者:
标题: 高手来帮我写个批处理吧~删文件个目录的【已经解决】 上一主题 | 下一主题
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『楼 主』:  高手来帮我写个批处理吧~删文件个目录的【已经解决】

我想要个能删除某个盘下超过3天的任何文件包括目录,要可以指定排除目录和文件的! 例如:我指定不删除D盘下的(下载),那运行后的效果是 D盘下只有一个(下载)的目录其他的都删了,D盘(下载)目录里面超过3天的文件也删除了~
看一下这个。。。这个只是删除超过3天的文件,不会删除目录,也不可以指定不需要删除的文件和目录! 是这BBS的人帮我写的!麻烦再帮忙改改~~ SET TT=3 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i ) if %p3% gtr %TT% goto ppp :nxt set/a p2-=1 if %p2% equ 0 set/a p1-=1&&set p2=12 SET/a PN1=%p1%%%4 set PN2=28 if %PN1% EQU 0 set pN2=29 for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i if %p3% leq %tt% goto nxt :ppp set/a p3=%p3%-%tt% set p2=0%p2% set p2=%p2:~-2,2% set p3=0%p3% set p3=%p3:~-2,2% for /r "f:\" %%i in (*.*) do set t=%%~ti &&call :loop "%%~fi" goto :eof :loop if not "%~1" == "%~f0" ( IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% del %1 )
[ Last edited by yhshiro on 2008-3-1 at 09:23 PM ]


2008-2-28 14:17
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 2 楼』:  

我已经改了,来个会的帮我写个啊,我不会BAT


2008-2-28 19:30
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  

@echo off regedit /e "%temp%\bak.reg" "HKEY_CURRENT_USER\Control Panel\International" >aDate.reg echo REGEDIT4 >>aDate.reg echo. >>aDate.reg echo [HKEY_CURRENT_USER\Control Panel\International] >>aDate.reg echo "sShortDate"="yyyy-MM-dd" >>aDate.reg echo "sDate"="-" >>aDate.reg echo "sTimeFormat"="HH:mm:ss" regedit /s aDate.reg&del aDate.reg >tmp.vbs echo Wscript.echo FormatDateTime (DateAdd("d", -3 ,Date),2) for /f "delims=" %%i in ('cscript.exe //nologo tmp.vbs') do set aDate=%%i del tmp.vbs ver|find "2000">nul&&set aDate=%aDate:~2% set aDate=%aDate:-=% setlocal EnableDelayedExpansion for /f "tokens=1,3*" %%i in ('dir /a-d "*.*"^|find "."') do ( set fileDate=%%i set fileDate=!fileDate:-=! if !fileDate! LSS %aDate% del /q/f "%%k" ) setlocal EnableDelayedExpansion for /f "skip=2 tokens=1,3*" %%i in ('dir /ad *^|find "<DIR>"^|find "你要排除的文件夹名"') do ( set fileDate=%%i set fileDate=!fileDate:-=! if !fileDate! LSS %aDate% rd /q "%%k" ) regedit /s "%temp%\bak.reg"&del /q "%temp%\bak.reg" pause
红色-3表示前3天 红色del /q/f "%%k"你够狠换成del /q/f/s "%%k" 红色rd /q "%%k"你够狠换成del /q/f/s "%%k\*"&rd /q/s "%%k" 运行该代码风险自担




2008-2-29 00:06
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 4 楼』:  

不行啊?运行后没效果!


2008-2-29 03:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 5 楼』:  

就把我上面的改一下 加个排除的目录就可以了啊!~还有排除目录的下级目录也一起删除....... 好像这代码太麻烦了....


2008-2-29 04:05
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 6 楼』:  

@echo off :st cls SET tt=3 SET ph=d:\ SET phd=下载 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i ) if %p3% gtr %TT% goto ppp :nxt set/a p2-=1 if %p2% equ 0 set/a p1-=1&&set p2=12 SET/a PN1=%p1%%%4 set PN2=28 if %PN1% EQU 0 set pN2=29 for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i if %p3% leq %tt% goto nxt :ppp set/a p3=%p3%-%tt% set p2=0%p2% set p2=%p2:~-2,2% set p3=0%p3% set p3=%p3:~-2,2% for /f "tokens=*" %%i in ('dir /b "%ph%"^|find /v "%phd%"') do call :loop "%%i" for /f "tokens=*" %%i in ('dir /b /s /a-d "%ph%%phd%"') do set t=%%~ti&&call :loop1 "%%i" pause goto :eof :loop1 IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% if not %1=="" del /a/q/f %1 2>nul&&goto :eof :loop if exist "%ph%%~1\" rd /s /q "%ph%%~1" 2>nul&&goto :eof if exist "%ph%%~1" del /a/q/f "%ph%%~1" 2>nul [ Last edited by terse on 2008-2-29 at 10:23 PM ]


   此帖被 +2 点积分    点击查看详情   
评分人:【 yhshiro 分数: +2  时间:2008-3-1 21:22




简单!简单!再简单!
2008-2-29 14:03
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 7 楼』:  

Originally posted by terse at 2008-2-29 02:03 PM: @echo off :st cls SET tt=3 SET ph=d:\ SET phd=下载 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "deli ...
系统找不到指定的文件。 找不到 C:\Documents and Settings\Administrator\桌面\人 找不到文件 文件名、目录名或卷标语法不正确。 请按任意键继续. . .


2008-2-29 15:54
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 8 楼』:  

Originally posted by yhshiro at 2008-2-29 15:54: 系统找不到指定的文件。 找不到 C:\Documents and Settings\Administrator\桌面\人 找不到文件 文件名、目录名或卷标语法不正确。 请按任意键继续. . .
对于这样的提示 现不明白你那边环境 重新改一下6楼代码 再 试一下 建议备份原文件




简单!简单!再简单!
2008-2-29 22:21
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 9 楼』:  

谢谢哈~


2008-3-1 21:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
halby
初级用户





积分 24
发帖 11
注册 2008-4-8
状态 离线
『第 10 楼』:  

谢谢哈~


2008-4-15 00:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
halby
初级用户





积分 24
发帖 11
注册 2008-4-8
状态 离线
『第 11 楼』:  

收到啊


2008-4-15 00:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zyroy000
初级用户





积分 30
发帖 13
注册 2005-12-6
状态 离线
『第 12 楼』:  

这个用起来可要小心了


2008-4-23 15:24
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: