批處理forfiles
FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy/MM/dd | dd}] 描述: 選擇一個文件(或一組文件)並在那個文件上 執行一個命令。這有助於批處理作業。
參數列表:
/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 在 2001年1月1日就是新的。" FORFILES /D +2017/2/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 F:\BaiduYunDownload /s /m *.RAR /c "cmd /c copy *.RAR F:\Ff"
查找目錄F:\BaiduYunDownload,包括子目錄下面的格式爲rar的文件,並將這些文件複製到F:\Ff目錄中
forfiles /p E:\BAK /s /m *.* /d -3 /c "cmd /c del /f /q /a @path" 查找目錄E:\BAK包括子目錄下面的所有超過3天的文件,並將這些文件刪掉 這個批處理搭配服務器的任務計劃程序可以實現自動刪掉文件和備份作用 @echo off ::演示:刪除指定路徑下指定天數之前(以文件的最後修改日期爲準)的文件。 ::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。 ::本例需要Win2003/Vista/Win7系統自帶的forfiles命令的支持 rem 指定待刪除文件的存放路徑 set SrcDir=E:\IM2\Log rem 指定天數 set DaysAgo=3 forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
備份: xcopy
複製文件和目錄樹。
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要複製的文件。
destination 指定新文件的位置和/或名稱。
/A 僅複製有存檔屬性集的文件,但不更改屬性。
/M 僅複製有存檔屬性集的文件,並關閉存檔屬性。
/D:m-d-y 複製在指定日期或指定日期以後更改的文件。
如果沒有提供日期,只複製那些源時間比目標時間新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。每個字符串在文件中應位於單獨的一行。
如果任何字符串與複製文件的絕對路徑的任何部分相符,則排除複製
該文件。例如,指定如 \obj\ 或 .obj 的字符串會分別排除目錄
obj 下面的所有文件或帶有 .obj 擴展名的所有文件。
/P 創建每個目標文件之前提示您。
/S 複製目錄和子目錄,不包括空目錄。
/E 複製目錄和子目錄,包括空目錄。與 /S /E 相同。可以用來修改 /T。
/V 驗證每個新文件的大小。
/W 提示您在複製前按鍵。
/C 即使有錯誤,也繼續複製。
/I 如果目標不存在,且要複製多個文件,則假定目標必須是目錄。
/Q 複製時不顯示文件名。
/F 複製時顯示完整的源文件名和目標文件名。
/L 顯示要複製的文件。
/G 允許將加密文件複製到不支持加密的目標。
/H 也複製隱藏文件和系統文件。
/R 覆蓋只讀文件。
/T 創建目錄結構,但不復制文件。不包括空目錄或子目錄。/T /E 包括
空目錄和子目錄。
/U 只複製已經存在於目標中的文件。
/K 複製屬性。一般的 Xcopy 會重設只讀屬性。
/N 用生成的短名稱複製。
/O 複製文件所有權和 ACL 信息。
/X 複製文件審覈設置(隱含 /O)。
/Y 取消提示以確認要覆蓋現有目標文件。
/-Y 要提示以確認要覆蓋現有目標文件。
/Z 在可重新啓動模式下複製網絡文件。
/B 複製符號鏈接本身與鏈接目標相對。
/J 複製時不使用緩衝的 I/O。推薦複製大文件時使用。
開關 /Y 可以預先在 COPYCMD 環境變量中設置。
這可能被命令行上的 /-Y 覆蓋。
xcopy //bak/*.* d:/bak /s /e /v /c / d /y /h
at 00:30 shutdown -s -f
說明:
xcopy命令
at 00:30 shutdown -s -f 表示00:30分自動關機