1樓:匿名使用者
不是太明天你的意思,這有個以前寫的,你參考下。
2樓:匿名使用者
@echo off
::搜尋並顯示指定目錄下(當前日期-修改日期》兩天)的檔案
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=/ " %%a in ('echo %date%') do set tday=%%a%%b%%c
::測試路徑e:\diffziprul,測試子目錄搜尋
::dir /s/b/a-d-h顯示當前目錄下的檔案(子目錄,簡單格式,不顯示目錄,不顯示隱藏檔案
for /f "tokens=1 delims=" %%a in ('dir /s/b/a-d-h "e:\diffziprul"') do (
set fname=%%a
::dir /tw顯示修改時間
for /f "tokens=1-3,6 delims=/ " %%b in ('dir /tw "!fname!"^|findstr/v "位元組"^|findstr/v "目錄"^|findstr/v "卷"^|findstr/v "dir"') do (
::取檔案修改日期,然後+2表示兩天的時間差
set /a fday=%%b%%c%%d
set /a fday+=2
::如果檔案修改日期加上兩天還是比當前日期小,那麼表示修改於兩天前,這裡用echo !fname!
顯示符合條件的檔案,以作除錯,實際應用時改成需要的動作,比如刪除就寫作del "!fname!" /q這樣
if !fday! lss !tday! (echo "!fname!")))
pause
批處理bat問題:刪除一個資料夾下所有子資料夾下指定時間前的檔案
怎麼用bat寫出指定資料夾下幾天前的所有檔案
3樓:匿名使用者
請先備份再測試
@echo off
set "f_p=e:\123"
set/a n=90
rem 計算前n天日期,閏年按簡單4年一閏計 ---- yyykkkyyyy
echo.
set/a d-=n,"1/(-d>>31)" 2>nul&&goto :ok
:loop
set/a m-=1,d+=31,y-=!m,m+=!m*12
if %d% leq 0 goto :loop
:okset/a m+=100,d+=100
set "d_n=%y%-%m:~1%-%d:~1%"
echo 本批處理繼續執行將刪除%f_p%下%d_n%日及之前的檔案
set/p=否則請關閉此視窗!按任意鍵將開始刪除... nul
clscd/d "%f_p%"
echo 正在刪除檔案
echo;
for /f "delims=" %%i in ('dir/b/s/ad^|sort/r')do (
rd "%%i" 2>nul&&echo 刪除資料夾%%i)
pause>nul
4樓:環環緊扣
rem 指定待刪除檔案的存放路徑
set srcdir=c:\test\bathome
rem 指定天數
set daysago=1
for /f "delims=" %%a in ('reg query "hkey_current_user\control panel\international" /v sshortdate') do (
set "regdateold=%%a"
reg add "hkey_current_user\control panel\international" /v sshortdate /t reg_sz /d yyyy-m-d /f>nul
>"%temp%\dstdate.vbs" echo lastdate=date()-%daysago%
>>"%temp%\dstdate.vbs" echo fmtdate=right(year(lastdate),4) ^& right("0" ^& month(lastdate),2) ^& right("0" ^& day(lastdate),2)
>>"%temp%\dstdate.vbs" echo wscript.echo fmtdate
for /f %%a in ('cscript /nologo "%temp%\dstdate.vbs"') do (
set "dstdate=%%a"
for /r "%srcdir%" %%a in (*.*) do (
if "%%~ta" leq "%dstdate%" (
if exist "%%a" (
echo del /f /q "%%a"))
)reg add "hkey_current_user\control panel\international" /v sshortdate /t reg_sz /d %regdateold% /f>nul
pause
想要使用bat來刪除某指定資料夾內的,指定天數以前的檔案。
5樓:匿名使用者
如果每天一個檔案的話,刪除30天前的檔案為例,可以用下面的方法@echo off
pushd d:\指定資料夾
set n=30
如果每天檔案多於一個的話,需藉助vbs來實現。
用bat本身判斷日期的有效性有點複雜。
6樓:匿名使用者
bat 是指批處理嗎
如果是的話那 delete 命令沒有一個引數可以用來判斷檔案建立時間的,所以不能實現
求大神寫個windows下 刪除指定資料夾裡面一週前的所有檔案和資料夾的bat
求批處理 批量刪除指定資料夾下的多個指定資料夾及檔案
用rmdir命令配合 s和 q s 除目錄本身外,還將刪除指定目錄下的所有子目錄和檔案。用於刪除目錄樹。q 安靜模式,帶 s 刪除目錄樹時不要求確認rmdir s q d d 網路 我rmdir s q d d 網路 上下rmdir s q d d 網路 上下025 自己修改用吧 echo off ...
批處理刪除包含指定字元的資料夾,寫個批處理刪除指定檔案或指定資料夾
這問題用系統提供的查詢的方法,按你的想法填上相關條件就可以把想處理的集中到一塊了,刪除也就容易了,如果是想讓人幫你寫批處理,描述得不詳細。echo off set p fn 請輸入包含的字串 for f delims i in dir fn ad b do rd s q i echo 完成!paus...
這個資料夾下的東西可以刪除嗎?謝咯
c documents and settings all users資料夾下是安裝一些軟體的時候產生的。如果刪了可能引起你的用些程式不能正常使用。但很多病毒也可埋在裡面。c documents and settings all users 裡面儲存所有使用者公用的資料資料,包括但不不限於程式的快捷方...