批處理命令
@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...