如何用批處理實現根據檔案或資料夾的最後修改時間 或生成時間 刪除指定路徑內30天以前的檔案或資料夾

2022-06-29 09:20:02 字數 4060 閱讀 7406

1樓:

@echo off

setlocal enabledelayedexpansion

rem 取30天之前的日期,取回放入變數riqi

echo wscript.echo dateadd("d",-30,date) >%tmp%\tmp.vbs

if %m% lss 10 set m=0%m%

if %d% lss 10 set d=0%d%

set riqi=%y%%m%%d%

rem 設定要處理的資料夾路徑

set "mulu=c:\test"

rem 設定要處理的檔案型別,也就是字尾

set "lx=txt"

for /f "eol= skip=4 tokens=1,4" %%a in ('dir /a-d /tw "%mulu%\*.%lx%"^|find /v ^"位元組^"') do (

set delrq=%%a

set delrq=!delrq:-=!

if !delrq! lss %riqi% (

del /q "%mulu%\%%~nxb"

) )echo 處理完成,按任意鍵退出程式

pause>nul&exit

***************====

回樓主,可以的,幫你修改了下..

@echo off

setlocal enabledelayedexpansion

rem 取30天之前的日期,取回放入變數riqi

echo wscript.echo dateadd("d",-30,date) >%tmp%\tmp.vbs

if %m% lss 10 set m=0%m%

if %d% lss 10 set d=0%d%

set riqi=%y%%m%%d%

rem 設定要處理的資料夾路徑

set "mulu=c:\test"

for /f "eol= skip=4 tokens=1,4" %%a in ('dir /ad /tw "%mulu%"^|find /v ^"位元組^"') do (

set delrq=%%a

set delrq=!delrq:-=!

if !delrq! lss %riqi% (

rd /s/q "%mulu%\%%b"

) )echo 處理完成,按任意鍵退出程式

pause>nul&exit

2樓:拉格朗日大人

很麻煩估計要用到管道,我也不太會給個提示看會不會對你有用吧,time得到日期,然後變換到30天前日期通過管道把日期傳給dir,dir用/t卡關可以只列出特定日期的檔案在通過管道把名字傳給del就行了,不過這裡面也是很複雜啊哈哈希望對你有用,你乾脆用vc寫乙個控制台程式的了呵呵這樣還比較簡單

如何讓批處理按建立時間刪除某資料夾下的檔案

3樓:萊靈慶司

先寫個bat檔案,此bat檔案檔案確定刪除的檔案跟路徑,再在計畫任務裡設定時間執行此bat檔案,

4樓:諫潤緱良吉

你用sq嗎。微軟的sq都是用維護計畫的啊。你可以設定讓他幾天備份。備份出來的檔案保留幾天。都是中文的很簡單。你看一下

批處理根據檔案修改時間刪除檔名最後幾個字元不同的檔案

5樓:匿名使用者

@echo off

setlocal enabledelayedexpansionfor /f "tokens=*" %%i in ('dir/b/o-d *.txt') do (

set s=%%i

set s=!s:~,8!

if defined #!s! (del %%i) else set #!s!=1)

6樓:匿名使用者

if not exist old md oldfor /f "delims=" %%f in ('dir /b *.txt') do (set a=%%f

for /f "skip=1 delims=" %%x in ('dir /b /o-d %%f*.txt') do move %%x old\)

批處理bat問題:刪除乙個資料夾下所有子資料夾下指定時間前的檔案

如何用批處理實現提取指定目錄下 某一修改日期的 檔名列表到txt檔案? 10

7樓:陽光的雷咩咩

這個感覺最好做成乙個小程式 幫寫私信

如何用批處理檔案來備份檔案名包含指定字元和檔案的修改日期和時間在指定的範圍的檔案到指定的路徑?

8樓:

建議你學學au3 寫個au3指令碼 範例給你看看吧吧

;au3 源**檔案1.au3

#include

$ini_file = @scriptdir & "\1.ini"

$src_folder = iniread($ini_file, "folder", "src", "d:\test")

$tag_folder = iniread($ini_file, "folder", "tag", "d:\backup")

$start_date = iniread($ini_file, "date", "start", "20111001")

$end_date = iniread($ini_file, "date", "end", "20111001")

$start_time = iniread($ini_file, "time", "start", "0300")

$endtime = iniread($ini_file, "time", "end", "0305")

$file = _filelisttoarray($src_folder, "*stock*.rpt", 1)

$modify_time = $file

for $i = 1 to $file[0]

$modify_time[$i] = stringleft(filegettime($src_folder & "\" & $file[$i], 0, 1), 12)

$date = stringleft($modify_time[$i], 8)

$time = stringright($modify_time[$i], 4)

$date_in_range = stringcompare($date,$start_date)>=0 and stringcompare($date,$end_date)<=0

$time_in_range = stringcompare($time,$start_time)>=0 and stringcompare($time,$end_time)<=0

if $date_in_range and $time_in_range then

filecopy($src_folder & "\" & $file[$i], $tag_folder)

endif

next

;配置檔案1.ini

[folder]

src=d:\test

tag=d:\backup

[date]

start=20111001

end=20111001

[time]

start=0300

end=0305

9樓:

應該可以做到,等高人.......

使用批處理檔案bat實現刪除和複製檔案

可以這樣的 echo off rd g cd1 s q md g cd1 xcopy d cd2 g cd1 e比如g cd1 是行動硬碟乙個目錄,cd2是d盤某資料夾。意思是 刪除cd1所有檔案,包括cd1,然後建立cd1。然後複製所有檔案,包含空資料夾到cd1中。del刪除乙個或數個檔案。del...

如何製作批處理文件?如何編寫批處理檔案?

沒必要做批處理,開啟登錄檔後,直接匯出這幾項成為乙個登錄檔檔案,可以用記事本開啟這個檔案處理一下,去掉多餘的內容。以後直接雙擊這個登錄檔檔案就能把登錄檔相關內容改過來了。如何編寫批處理檔案?怎麼用批處理檔案寫乙個文字文件?具體方法如下 1 建立文件。1 建立乙個txt文件。2 修改txt文件的字尾,...

如何用批處理bat將多個檔案中的指定字串刪除

不清楚你的實際檔案 情況,僅以問題中的樣例 說明為據 以下 複製貼上到記事本,另存為xx.bat,編碼選ansi,跟要處理的檔案放一起執行 cls echo off rem 根據一個指定文字檔案裡列出的多個字串,將多個txt文字檔案內的這些字串刪除 title z cd d dp0 powershe...