A. 怎樣使用bat任務刪除7天前的文件夾及其裡面的文件
走
這篇文章主要為大家詳細介紹了Windows下使用批處理文件.bat刪除舊文件,具有一定的參考價值,感興趣的小夥伴們可以參考一下
本文教大家寫一個批處理文件.bat刪除舊文件,供大家參考,具體內容如下
1. 批處理文件 del_old_file.bat
rem 刪除D:\temp目錄下7天前的文件
Forfiles /p D:\temp /s /d -7 /m *.* /c "cmd /c del /q /f @path"
rem 刪除C:\inetpub\logs目錄下14天前的文件
Forfiles /p C:\inetpub\logs /s /d -14 /m *.* /c "cmd /c del /q /f @path"
2. 各參數的含義
rem: 注釋命令,只是起一個注釋的作用
/p:指定要刪除的目錄
/s:表示遞歸搜索子目錄
/d:-14表示14天前的文件,-7表示7天前的文件
/m:*.* 表示所有文件類型,如果要刪除特定文件格式,可自行指定(如:只刪除txt文件,可寫成 *.txt )
/c:自行指定的命令,後面雙引號括起來的是刪除文件命令
自行指定的命令 "cmd /c del /q /f @path" 中:
/c: 表示執行完批處理命令後,關閉CMD窗口
del: 刪除文件的命令
/q:安靜模式。刪除全局通配符時,不要求確認
/f:強制刪除只讀文件。
3. 使用方式及會用到的地方
使用方式:可以在Windows任務計劃程序中,創建定時任務來執行該批處理文件(如:每天什麼時間執行、執行頻率......)。
會用到的地方:用於刪除佔用資源且沒有用的文件,可用於定時刪除伺服器上的很久以前的臨時文件、IIS伺服器log......
優點:只需簡單幾行命令,完成設定來實現目的是比較快的。
B. windows xp批處理按文件名稱刪除7天前的文件夾
根據您的這個目錄形式,我幫您寫了個批處理,但並不沒有完全實現您的要求,主要是批處理中判斷日期太費勁了。所以折衷了一下:保留最近的n個文件夾,請您酌情使用。
請將下面的批處理存為myclear.bat
@echo off
@set n=7
@for /f "skip=%n% delims=" %%i in ('dir 2* /ad /o-n /b') do @del "%%i" /f /s /q
其中那個n=您可以根據自己的需要設置保留的文件夾數。
C. 求助如何刪除修改日期7天前的文件夾(非空文件夾)用批處理、C#或者其他語言都行 求代碼!
C#:
staticvoidMain(string[]args)
{
varb7=Directory.GetDirectories(@"C:")
.Select(d=>newDirectoryInfo(d))
.Where(d=>
d.CreationTime<DateTime.Now.AddDays(-7)
&&d.GetFiles().Length>0);
foreach(varsinb7)
{
Console.WriteLine(s);
//s.Delete();//自己測試一下確定是否刪除
}
Console.ReadLine();
}
D. BAT刪除指定文件夾下,幾天前的文件
正確的如下:
@echo off
setlocal enabledelayedexpansion
set d=%date:~0,10%
mshta vbscript:createobject("scripting.filesystemobject").opentextfile("wind.txt",2,true).write(dateadd("d",-2,"%d%"))(window.close)
for /f %%m in (wind.txt) do set tt=%%m
echo !tt!
for /r "F:\222" %%i in (*) do (
set t1=%%~ti
echo "!t1:-0=-!" lss "!tt!"
if "!t1:-0=-!" lss "!tt!" del /a /f "%%i")
pause
說明:批處理只能執行同種格式日期大小比較。
比如:2010-08-20不能和2010-8-30比較因為後者月份前沒有0。我去掉文件日期中的0就可以了。
E. 批處理指令刪除指定日期前創建的文件
::如果是widnows7系統,可以使用下面的代碼
@echooff
set/pdt=請輸入日期:
set/ppth=請輸入路徑:
forfiles/p"%pth%"/m*.*/c"cmd/cdel/a/f@path"/d-%dt%
for/f"delims="%%ain('dir/a-d/b/s"%pth%"^|sort/r')do(
rd"%%a"
)
pause
F. 批處理刪除7天前以日期命名的文件夾(例如文件夾名:2013-12-09_08)
@echooff&
>tmp.vbsechol=date()-7
>>tmp.vbsechof=right(year(l),4)^&right("0"^&month(l),2)^&right("0"^&day(l),2)
>>tmp.vbsechowscript.echof
for/f%%ain('cscript/nologotmp.vbs')dosetfd=%%a
del/qtmp.vbs
set"pt=C:Temp"
pushd"%pt%"
for/f"tokens=1-4delims=-_"%%ain('dir/ad/b"%pt%201*-**-**_**"')do(setft=%%a%%b%%c
if!ft!lss%fd%rd"%%a-%%b-%%c_%%d")
pause
刪除指定日期格式的文件夾(7天前).
G. 用批處理bat或vbs刪除7天前的的文件
@echooff
::設置幾天前
setn=7
>"%tmp% .vbs"echo;t=date()-%n%:y=right(year(t),4):m=right("0"^&month(t),2):d=right("0"^&day(t),2):wscript.echoy^&""^&m^&""^&d
for/f"tokens=1-3"%%ain('cscript/nologo"%tmp% .vbs"')dosety=%%a&setm=%%b&setd=%%c
echo;%n%天前的日期為%y%%m%%d%
del"D:BAK備份BAK_%y%年%m%月%d%日*.rar"
pause
測試前先備份源文件,及時採納回答
H. 批處理刪除n天前的文件和文件夾
我的思路是 用dir for if 這三個命令 先用dir顯示出所有文件的生成時間 之後用for處理下 去掉dir開頭判斷的盤符什麼的 之後把時間留下來 在套上if進行對比 比如說今天10號 把時間跟7比較 那麼小於7的進行刪除 具體不怎麼會寫 剛剛接觸到for命令 可以互相探討
I. bat腳本刪除5天之前的文件
bat腳本:批處理文件,在DOS和Windows(任意)系統中,.bat文件是可執行文件,由一系列命令構成,其中可以包含對其他程序的調用。這個文件的每一行都是一條DOS命令(大部分時候就好像我們在DOS提示符下執行的命令行一樣),你可以使用DOS下的Edit或者Windows的記事本(notepad)等任何文本文件編輯工具創建和修改批處理文件。
@echo off
::在d:\測試文件夾中刪除5天前以日期為主名的txt文件
cd/d "d:\測試文件夾"
set/a n=5
set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set/a d-=n
if %d% gtr 0 goto :ok
:ov
set/a "md=31-!(m-5)-!(m-7)-!(m-10)-!(m-12)-!(m-3)*(3-!(y&3))"
set/a d+=md,m-=1
if %m% equ 0 set/a m=12,y-=1
if %d% leq 0 goto :ov
:ok
set/a md=m*100+d+10000
set "ymd=%y%%md:~1%"
echo %n% 天前日期為%ymd%
set "s=20[0-9][0-9][0-1][0-9][0-3][0-9]"
for /f "delims=" %%i in (
'dir/b^|findstr/ix "%s%\.txt"') do (
if "%%~ni" leq "%ymd%" (del %%i&&echo %%i)
)
pause
J. 如何批處理刪除某文件夾下5天以前的所有文件
假如你要刪除d:\test123\文件夾下5天前所有的文件,可用如下命令:forfiles /p d:\test123 /s /m *.* /d -5 /c "cmd /c del @file"