DOS命令刪除N天以前的檔案

2021-06-19 22:43:49 字數 1660 閱讀 8212

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

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

描述:選擇乙個檔案(或一組檔案)並在那個檔案上

執行乙個命令。這有助於批處理作業。

引數列表:

/p pathname 表示開始搜尋的路徑。預設資料夾是當前工作的目錄 (.)。

/m searchmask 根據搜尋掩碼搜尋檔案。預設搜尋掩碼是 '*'。

/s 指導 forfiles 遞迴到子目錄。像 "dir /s"。

/c command 表示為每個檔案執行的命令。命令字串應該

用雙引號括起來。

預設命令是 "cmd /c echo @file"。下列變數

可以用在命令字串中:

@file - 返回檔名。

@fname - 返回不帶副檔名的檔名。

@ext - 只返回檔案的擴充套件。

@path - 返回檔案的完整路徑。

@relpath - 返回檔案的相對路徑。

@isdir - 如果檔案型別是目錄,返回 "true";

如果是檔案,返回 "false"。

@fsize - 以位元組為單位返回檔案大小。

@fdate - 返回檔案上一次修改的日期。

@ftime - 返回檔案上一次修改的時間。

要在命令列包括特殊字元,字元請以 0xhh

形式使用十六進製制**(例如,0x09 為 tab)。

內部 cmd.exe 命令前面應以 "cmd /c" 開始。

/d date 選擇檔案,其上一次修改日期大於或等於 (+),

或者小於或等於 (-) 用 "yyyy-mm-dd" 格式指定的日期;

或選擇檔案,其上一次修改日期大於或等於 (+)

當前日期加 "dd" 天,或者小於或等於 (-) 當前

日期減 "dd" 天。有效的 "dd" 天數可以是

0 - 32768 範圍內的任何數字。如果沒有指定,

"+" 被當作預設符號。

/? 顯示幫助訊息。

例如: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 +2006-11-25 /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"

刪除三十天前的檔案forfiles /p "c:\temp" /s /m *.* /d -30 /c "cmd /c del @path"

DOS命令列刪除N天以前的檔案

dos命令列刪除n天以前的檔案 deloldfile.cmd deloldfile.cmd 刪除指定日期前的所有檔案 climbing 2005 8 26 cmd winxp echo off if 1 goto usage set dst if not 2 if exist 2 set dst 2...

清除n天以前的日誌檔案以及mysql bin檔案

web def host 1.2.3.4 mysql的ip web def port 3306 mysql的埠 web def username tester mysql的使用者 web def password 123 mysql的密碼 web def mysql expire logs days...

刪除多天以前的檔案批處理命令

前兩天專案支援的系統 ams prod dd p盤快滿了。找到原因是清理舊檔案的housekeeping job配置不正確,很多老檔案沒有被清理。因為磁碟空間一旦填滿整個程式就掛了,需要馬上加磁碟或者清理空間。嘗試用ps來查詢一段時間以前的檔案再移到另外的資料夾裡去,但是因為剩餘空間小執行的效果不好...