|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『楼 主』:
如何删除特定目录下50天以前建立的子目录
如何删除特定目录下50天以前建立的子目录及其中的文件(彻底删除不放到回收站),拜托各位高手指导。
|
|
2008-6-1 12:40 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
|
2008-6-1 14:45 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
3 楼』:
刚发一个判断文件的 现在又来个文件夹 修改一下看能用否?没测试
@echo off&SET TT=50
for /f "tokens=1-3 delims=-/\:. " %%i in ("%date%") do set /a p1=%%i,p2=100%%j%%100,p3=100%%k%%100
if %p3% gtr %TT% goto ppp
:nxt
set/a p2-=1
if %p2% equ 0 set/a p1-=1&&set p2=12
set/a PN2="!(p1%%4)&!(!(p1%%100))|!(p1%%400)",PN2=28+PN2
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%
setlocal enabledelayedexpansion
for %%i in (p2 p3 t1 t2) do if !%%i! lss 10 set %%i=0!%%i!
for /f "tokens=*" %%i in ('dir /b /s /ad') do (
set "ta=%%~ti"
if "!ta:~0,4!!ta:~5,2!!ta:~8,2!" leq "!p1!!p2!!p3!" rd /s /q "%%~fi" 2>nul
)
pause 已修改
[ Last edited by terse on 2008-6-2 at 02:24 PM ]
|
简单!简单!再简单! |
|
2008-6-1 15:27 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
4 楼』:
谢谢 ! 可以使用,但我水平有限,还看不懂,有以下两点请教terse :
1, TT=50 是指50天天数吗,可以改成任意天数吧。
2, 我想删除d:\disk\dbs\bak\ 下的目录及其中文件 , 能帮我将相对路径改为绝对路径吗(以便批命令文件放在任意地方都能执行)?
|
|
2008-6-1 21:23 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
5 楼』:
补充 : 3, 执行完命令后桌面不留dos窗口(按任意键继续。。。)。
|
|
2008-6-1 21:34 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by blljp at 2008-6-1 09:34 PM:
补充 : 3, 执行完命令后桌面不留dos窗口(按任意键继续。。。)。 |
|
这个问题我解决了,把最后的 pause 去掉就可以了 ,这样做行不行?
|
|
2008-6-1 21:42 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
7 楼』:
Quote: | Originally posted by blljp at 2008-6-1 21:23:
谢谢 ! 可以使用,但我水平有限,还看不懂,有以下两点请教terse :
1, TT=50 是指50天天数吗,可以改成任意天数吧。
2, 我想删除d:\disk\dbs\bak\ 下 ... |
|
TT=50 是指50天天数,可以改成任意天数
|
简单!简单!再简单! |
|
2008-6-1 23:13 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
8 楼』:
2, 我想删除d:\disk\dbs\bak\ 下的目录及其中文件 , 能帮我将相对路径改为绝对路径吗(以便批命令文件放在任意地方都能执行,增强安全性。)?
|
|
2008-6-2 10:20 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by blljp at 2008-6-2 10:20:
2, 我想删除d:\disk\dbs\bak\ 下的目录及其中文件 , 能帮我将相对路径改为绝对路径吗(以便批命令文件放在任意地方都能执行,增强安全性。)? |
|
要处理文件和文件夹需多个判断 试下面的(已修改):
@echo off
set tt=50&set ph=d:\disk\dbs\bak\
for /f "tokens=1-3 delims=-/\:. " %%i in ("%date%") do set /a p1=%%i,p2=100%%j%%100,p3=100%%k%%100
if %p3% gtr %TT% goto ppp
:nxt
set/a p2-=1
if %p2% equ 0 set/a p1-=1&&set p2=12
set/a PN2="!(p1%%4)&!(!(p1%%100))|!(p1%%400)",PN2=28+PN2
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%
setlocal enabledelayedexpansion
for %%i in (p2 p3 t1 t2) do if !%%i! lss 10 set %%i=0!%%i!
for /f "tokens=*" %%i in ('dir /b /s "%ph%"') do (
set "ta=%%~ti"
if exist "%%i\" (
if "!ta:~0,4!!ta:~5,2!!ta:~8,2!" leq "!p1!!p2!!p3!" rd /s /q "%%i" 2>nul
) else if "!ta:~0,4!!ta:~5,2!!ta:~8,2!" leq "!p1!!p2!!p3!" del /a/q/f "%%i" >nul 2>nul
) [ Last edited by terse on 2008-6-2 at 02:26 PM ]
|
简单!简单!再简单! |
|
2008-6-2 10:47 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by terse at 2008-6-2 10:47 AM:
要处理文件和文件夹需多个判断 试下面的:
[code]
@echo off&SET TT=50&set ph=d:\disk\dbs\bak
for /f "tokens=1-3 delims=-/\:. " %%i in ("%date%") do ... |
|
谢谢你,测试了,存在两个问题:
1.dos窗口停留在屏幕上(请按任意键继续. . .)。
2.批命令文件放在其他地方不起作用,只有放在d:\disk\dbs\bak下才行。
|
|
2008-6-2 12:37 |
|
|
liyyhh
初级用户
积分 48
发帖 27
注册 2008-6-1
状态 离线
|
|
2008-6-2 13:23 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
12 楼』:
谢谢你,测试了,存在两个问题:
1.dos窗口停留在屏幕上(请按任意键继续. . .)。
2.批命令文件放在其他地方不起作用,只有放在d:\disk\dbs\bak下才行。
|
|
2008-6-2 16:21 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by blljp at 2008-6-2 16:21:
谢谢你,测试了,存在两个问题:
1.dos窗口停留在屏幕上(请按任意键继续. . .)。
2.批命令文件放在其他地方不起作用,只有放在d:\disk\dbs\bak下才行。 |
|
不会吧 我刚测试一下好的啊
|
简单!简单!再简单! |
|
2008-6-2 18:12 |
|
|
blljp
初级用户
积分 26
发帖 12
注册 2008-6-1
状态 离线
|
『第
14 楼』:
1.按任意键后dos窗口才能消失。
2.将批命令文件放在其他路径下(比如:d:/test下),则无法删除d:\disk\dbs\bak下50天前的文件夹,只有将批命令文件放在d:\disk\dbs\bak下才能删除其下的50天前的文件夹。
拜托再帮我看看。
|
|
2008-6-2 19:29 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
15 楼』:
Quote: | Originally posted by blljp at 2008-6-2 19:29:
1.按任意键后dos窗口才能消失。
2.将批命令文件放在其他路径下(比如:d:/test下),则无法删除d:\disk\dbs\bak下50天前的文件夹,只有将批命令文件放在 ... |
|
你确认用了9楼修改后的代码吗 我这里测试过的啊
|
简单!简单!再简单! |
|
2008-6-2 19:49 |
|