在運行Windows的時候,也會出現(xiàn)一些不必要的文件,需要進行定期的刪除,避免占用大量的磁盤空間。Windows的forfiles命令猶如Linux的find命令,一行命令就可以刪除舊文件及文件夾。
Windows的批處理文件,一般后綴為bat或者cmd,在這里使用bat。
在這里文件為C:\Apache\access.log。
變量 | 內(nèi)容 | 輸出結(jié)果 |
---|---|---|
@file | 文件名(包括后綴) | access.log |
@fname | 文件名(不包括后綴) | access |
@ext | 后綴 | log |
@path | 文件的完全路徑 | C:\Apache\access.log |
@relpath | 文件的相對路徑 | .\access.log |
@isdir | 如果是文件夾會返回TRUE(注意是大寫),當文件時會返回FALSE。 | – |
@fsize | 文件大小(bytes單位) | 128 |
@fdate | 文件的更新日期 | 2015/12/8 |
@ftime | 文件的更新時間 | 15:50:20 |
forfiles命令其他參數(shù)可以使用forfiles /?命令進行查看。
執(zhí)行該bat文件的話,會刪除D:\Apache\Log_Archives文件夾下面的7天之前的目錄,包括目錄下的文件。
cleanup.bat
@echo off
:: set folder path
set log_path=D:\Apache\Log_Archives
:: set min age of files and folders to delete
set max_days=7
:: remove sub directories from %log_path%
C:\Windows\System32\forfiles -p %log_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path"
刪除D:\Apache\Logs文件夾下的7天之前的所有文件。
DelFile.bat
set log_path=D:\Apache\Logs
:: remove files from %log_path%
forfiles -p %log_path% -m *.* -d -%max_days% -c "cmd /c del /q @path"
如果出現(xiàn)以下錯誤時,可以把forfiles命令指定為完全路徑(FullPath),C:\Windows\System32\forfiles。
'forfiles' 不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件。
1) 依次點擊「開始」-> 「管理工具」->「任務計劃程序」。
2) 點擊「創(chuàng)建基本任務」。
3) 填寫任務的名稱及描述之后,點擊「下一步」。
4) 在這里使用默認的「每天」,并點擊「下一步」。
5) 開始日期選擇當天(在這里是2015/12/8),時間選擇3:00:00(3點執(zhí)行),每隔1天發(fā)生一次。以上設定是每天3天執(zhí)行該任務。
6) 點擊「下一步」。
7) 選擇上面的創(chuàng)建的bat文件之后,點擊「下一步」。
8) 點擊「完成」。
聯(lián)系客服