❶ 批處理刪除30天以前以日期命名文件夾(YYYY-MM-DD)
@echooff
pushdf:
echowscript.echodateadd("d",-1,now())>x.vbs
for/f%%iin('cscript/nologox.vbs')dosetd=%%i
delx.vbs
if"%d:~6,1%"=="-"setd=%d:~,5%0%d:~5,5%
if"%d:~9,1%"==""setd=%d:~,8%0%d:~8,1%
for/f"tokens=*"%%iin('dir/s/b/ad????-??-??')doif%%~tilss%d%rd"%%i"/s/q
❷ 批量刪除日期命名的文件夾
@echooff
rem設置保留最新的文件夾數
setn=20
for/f"skip=%n%tokens=*"%%iin('dir/b/ad/o-d201*')dord"%%i"/s/q
❸ 批處理刪除5天前以日期命名的文件夾(例如文件夾名:20130313)
@echo off
rem 刪除當前目錄下5天前的目錄,日期的判斷以目錄名為准。
rem 下一句指定天數
set daysago=5
>dstdate.vbs echo LastDate=date()-%daysago%
>>dstdate.vbs echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>dstdate.vbs echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo dstdate.vbs') do set "dstdate=%%a"
set dstdate=%dstdate:~0,4%%dstdate:~4,2%%dstdate:~6,2%
setlocal enabledelayedexpansion
for /d %%a in (*) do (
if "%%~ta" leq "%dstdate%" (
set "folderdate=%%~na"
if "!folderdate!" leq "%dstdate%" if exist "%%a\" rd /s /q "%%a"
)
)
endlocal
pause
刪除目錄有風險,請自己新建幾個空文件夾測試一下先.
win7下測試通過。
❹ Linux怎樣刪除以日期命名的文件夾及其文件
按月份刪除的話就是:rm
-rf
201405*,代表刪除以201405開頭的文件夾
按年份的話就是:rm
-rf
2014*
,代表刪除所有以2014開頭的文件和文件夾
或者進入這個目錄下,想刪除所有文件和文件夾的話就是:rm
-rf
*
❺ 批處理刪除5天前以日期命名的文件夾(例如文件夾名:****0116-0205.xls 2017-02-13 221047 )
這個腳本也許適合你,更改一下目錄名稱和保留天數
最重要的,要自己測試一下
::/刪除伺服器備份,保留最近35天的備份
forfiles /P "D:\DevBackup" /D -35 /C "cmd /c del @file"
❻ 怎樣在pc_dos7和ms_dos7系統下刪除前三個月以系統日期命名的文件夾
用命令deltree 2012*即可,這里假設以系統日期命名的文件夾符合2012做前綴的規律,如果沒有規律就只能一個一個的刪除了,*代表後面不相同的部分,如果刪除文件的話就用 del 2012*.*命令即可