刪除 D:\yswbak 目錄下rar類型 6天前的 文件
@echo off
forfiles /p D:\yswbak /m *.rar /d -6 /c "cmd /c del @path"
1、在批處理文件中,如果命令前加@,表示這條命令不打印出來,只把結果打印出來,即@是關閉命令本身的回顯
2、::在批處理中表示注釋某一行 3、ECHO ON表示接下來的命令中(不包括本命令),執行命令前會先把命令打印出來 ECHO OFF表示接下來的命令中(不包括本命令),只打印執行結果,不打印命令本身 @ECHO OFF表示接下來的命令中(包括本命令),只打印執行結果,不打印命令本身 4、命令echo XXX中,XXX是結果,echo XXX是命令本身
FORFILES
forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | - }] [{MM / DD / YYYY | DD }]]
forfiles是一款windows平台的軟件工具,其中選擇文件並運行一個命令來操作文件。
文件選擇標准包括名稱和上次修改日期。
它可以直接在命令行中使用,也可以在批處理文件或其他腳本中使用。
該forfiles命令最初作為加載項提供在Windows NT 資源工具包中。它成為Windows Vista的標准實用程序,作為新管理功能的一部分。
用法
forfiles命令有幾個命令行選項。如果沒有給出選項或參數,它將輸出當前目錄中每個文件的名稱。
說明:
/p 指定的路徑
/s 包括子目錄,默認情況下,僅搜索單個指定目錄。
/m 查找的文件名掩碼
/d 指定日期,有絕對日期和相對日期, 此處-7指當前日期 的7天前
/c 運行的命令行 表示為每個文件執行的命令。命令字符串應該用雙引號括起來。
默認命令是 "cmd /c echo @file"。
下列變量可以用在命令字符串中:
@file - 返回文件名。 @fname - 返回不帶擴展名的文件名。 @ext - 只返回文件的擴展。 @path - 返回文件的完整路徑。 @relpath - 返回文件的相對路徑。 @isdir - 如果文件類型是目錄,返回 "TRUE";如果是文件,返回 "FALSE"。 @fsize - 以字節為單位返回文件大小。 @fdate - 返回文件上一次修改的日期。 @ftime - 返回文件上一次修改的時間
日期語法
date參數可以作為文字日期給出, 格式 [/d [{+ | - }] [{MM / DD / YYYY | DD }]]
其中MM / DD / YYYY 是指定的日期,DD 是當前日期減去DD 天
如果date參數以減號( - )開頭,則僅選擇在給定日期或之前修改的文件(較舊的文件/先前修改過)。
否則,僅選擇在給定日期或之后修改的文件(較新的文件/稍后修改)。可以給出顯式加號(+),但這是默認值。
請注意,兩種模式都在給定日期選擇文件。無法僅在給定日期選擇文件(也不在之前或之后)。
示例:
刪除D:\db_bak目錄下(包含子目錄)20天之前的rar文件,請鍵入:
forfiles /p "D:\db_bak" /s /m *.rar /d -20 /c "cmd /c del @path"
要列出 C: 上 1993 年 1 月 1 日以前創建的所有文件,並顯示“file is quite old!”,請鍵入:
forfiles /p c:/ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"
列出驅動器C: 上的所有批處理文件,請鍵入:
forfiles /p c:/ /s /m *.bat /c "cmd /c echo @file is a batch file"
列出驅動器 C: 上的所有目錄,請鍵入:
forfiles /p c:\ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"