批命令刪除三天前建立的檔案

2021-05-22 22:50:10 字數 1700 閱讀 5679

批處理命令

@echo off

set tt=1

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"

pause

goto :eof

:loop

if not "%~1" == "%~f0" (

if %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% del %1

) windows2003系統可以呼叫乙個預設檔案 c:/windows/system32/forfiles.exe來處理。

c:/test>forfiles /?

forfiles [/p pathname] [/m searchmask] [/s]

[/c command] [/d [+ | -] ]

如下:forfiles /p c:/test /d -3 /c "cmd /c del @file"

其它:forfiles /?

forfiles

forfiles /p c:/windows /s /m dns*.*

forfiles /s /m *.txt /c "cmd /c type @file | more"

forfiles /p c:/ /s /m *.bat

forfiles /d -30 /m *.exe

/c "cmd /c echo @path 0x09 在 30 前就被更改。"

forfiles /d 2001-01-01

/c "cmd /c echo @fname 在 2023年1月1日就是新的。"

forfiles /d +2010-6-29 /c "cmd /c echo @fname 今天是新的。"

forfiles /m *.exe /d +1

forfiles /s /m *.doc /c "cmd /c echo @fsize"

forfiles /m *.txt /c "cmd /c if @isdir==false notepad.exe @file"

linux刪除N天前建立的檔案

語句寫法 find 對應目錄 mtime 天數 name 檔名 exec rm rf 例1 find usr local backups mtime 10 name exec rm rf 將 usr local backups目錄下所有10天前帶 的檔案刪除 find linux的查詢命令,使用者查...

shell刪除三天前或者三天內的檔案

說明 n 大於 n,n 小於 n,n 相等於 n.find amin 30 ls 查詢在系統中最後30分鐘訪問的檔案 find atime 2 ls 查詢在系統中最後48小時訪問的檔案 find mmin 10 ls 查詢在系統中最後10分鐘裡修改過的檔案 find mtime 1 ls 查詢在系統...

Linux 自動刪除N天前的檔案

linux是乙個很能自動產生檔案的系統,日誌 郵件 備份等。所以自從刪除就顯的很方便。語句寫法 find 對應目錄 mtime 天數 name 檔名 exec rm rf 例1 find u01 backups mtime 10 name exec rm rf 將 u01 backups目錄下所有1...