欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Windows定時刪除指定路徑下N天前的文件以及文件夾(腳本之家修正版)

 更新時間:2024年06月09日 12:47:15   投稿:mdxy-dxy  
今天在配置服務器的時候,發(fā)現(xiàn)備份的數(shù)據(jù)過多,硬盤嚴重吃緊,所以考慮定時檢查當前文件夾下刪除一些文件保證15天內(nèi)的數(shù)據(jù)就可以了,找了很多批處理發(fā)現(xiàn)如下的命令不錯

問:如何批處理刪除文件夾及其所有子文件夾下N天前所有文件

答:下面的分析非常好,一旦文件夾里面做過任何操作,文件夾都是當前日期,所以就無法刪除

當文件夾里面的某一個文件當前時間被修改過,這個文件夾的修改時間就會變成當前時間.
以刪除30天以前的文件夾為例.如果一個文件夾的最后時間都是30天以前.
那么在30天以內(nèi)該文件夾下的所有文件都沒有被修改過.
而一個文件夾如果不在30天以前,那么也可能文件夾下的某些文件是在30天以前的.
根據(jù)這個思路.先刪除30天以前的文件夾.
再刪除30天以內(nèi)文件夾下所有30天以前的文件.
那么就結(jié)果就如下:

forfiles -D -30 /M * /C "cmd /c rd @file /s /q"
forfiles -D -30 /S /M * /C "cmd /c del @path /s /q"

兩行批處理即可搞定,具體的完整代碼可以參考下面的內(nèi)容

forfiles 判斷文件夾

forfiles 是 Windows 命令提示符(cmd)中的一個命令,用于基于一組文件(包括文件夾)執(zhí)行命令。

要使用 forfiles 來判斷是否存在特定的文件夾,可以使用以下命令:

forfiles /p "C:\path" /s /d -1 /c "cmd /c if @isdir==TRUE echo Folder found: @path"

解釋:

/p 參數(shù)后面跟著要搜索的路徑。

/s 參數(shù)表示搜索子目錄。

/d -1 表示當前日期之前的日期,因為如果找到的是文件夾,它的日期將與當前日期匹配或早于當前日期。

/c 參數(shù)后面是要執(zhí)行的命令,這里是 cmd /c if @isdir==TRUE echo Folder found: @path,其中 @isdir 是一個變量,如果是文件夾則為 TRUE,如果是文件則為 FALSE。

如果需要判斷特定名稱的文件夾,可以修改 forfiles 命令以匹配特定的文件夾名稱:

forfiles /p "C:\path" /s /m yourfoldername /c "cmd /c if @isdir==TRUE echo Folder found: @path"

在這個例子中,yourfoldername 是你要查找的文件夾名稱。如果找到了匹配的文件夾,將會在命令提示符窗口中顯示文件夾的路徑。

將下面代碼復制到自建的.txt文件里,然后保存再更改后輟名為.bat,點擊執(zhí)行即可

腳本文件存放隨意,因為里面的路徑是絕對路徑

1. 刪除指定路徑下15天前的所有文件

@echo off
set SrcDir=E:\WORK\Git
set DaysAgo=15
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"

這里的 /m . 是指路徑下的所有文件,可以指定文件后輟如 *.txt

2.刪除指定路徑下5天前的所有文件夾

@echo off
set SrcDir=E:\WORK\Git
set DaysAgo=5
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c rd /s /q @path"

也就是把 【del /f /q /a】換成【rd /s /q】即可

3.刪除指定路徑下5天前的所有文件,以及文件夾

@echo off
set SrcDir=E:\WORK\Git
set DaysAgo=5
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c rd /s /q @path"
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"

4.刪除當前目錄及子目錄下的空文件夾

@echo off
setlocal

REM 刪除當前目錄下的空文件夾
for /f "delims=" %%d in ('dir /ad /s /b ^| sort /r') do (
    rmdir "%%d" 2>nul
)

REM 輸出刪除操作完成的提示信息
echo 刪除空文件夾操作完成。

endlocal

雙擊運行批處理,即可刪除當前目錄及子目錄下的空文件夾完成。

5.windows下bat腳本實現(xiàn)定時刪除指定文件夾下的文件和文件夾

業(yè)務需求:jenkisn腳本執(zhí)行日志需要定時清理,否則會影響執(zhí)行結(jié)果,因此需要使用bat腳本,實現(xiàn)每隔一小時,定時刪除文件路徑為E:\ABC\DEF下的所有文件和文件夾。

1、首先新建一個del.txt文本
del /f /s /q E:\ABC\DEF\*.* cd E:\ABC\DEF rd /s /q E:\ABC\DEF cd .. md E:\ABC\DEF
升級:如果要求根據(jù)當前日期(eg:2020/12/25)創(chuàng)建和清除當天文件?
del /f /s /q E:\ABC\%date:~0,4%\%date:~5,2%\%date:~8,2%\*.* cd E:\ABC\%date:~0,4%\%date:~5,2%\%date:~8,2% rd /s /q E:\ABC\%date:~0,4%\%date:~5,2%\%date:~8,2% cd .. md E:\ABC\%date:~0,4%\%date:~5,2%\%date:~8,2%
2、保存,右擊文件選擇【重命名】,將后綴改成.bat文件
說明:這里的del命令只能刪除文件,不能刪文件夾。
刪除文件夾使用rd命令。
del 刪除文件
/f參數(shù)表示:強制刪除只讀文件
/s參數(shù)表示:從所有子目錄刪除指定文件
/q參數(shù)表示:刪除全局通配符時,不提示刪除確認
cd 進入文件夾目錄
rd 刪除文件夾
cd …/返回上級目錄
md 創(chuàng)建文件夾

6.批處理定時刪除文件夾及文件

批處理腳本可以用來定期刪除指定的文件夾及其中的所有文件。以下是一個簡單的批處理腳本示例,它會刪除指定路徑下的文件夾及其所有內(nèi)容:

@echo off
setlocal
:: 設(shè)置要刪除的文件夾路徑
set "TARGET_DIR=C:\path\to\your\directory"
:: 確認文件夾是否存在
if exist "%TARGET_DIR%" (
rmdir /s /q "%TARGET_DIR%"
if not exist "%TARGET_DIR%" (
echo 文件夾已被刪除: %TARGET_DIR%
)
) else (
echo 指定的文件夾不存在: %TARGET_DIR%
)
endlocal

請將 C:\path\to\your\directory 替換為你想要刪除的文件夾的實際路徑。

將以上代碼保存為 .bat 文件,并雙擊運行或通過任務計劃程序設(shè)置定時執(zhí)行,以實現(xiàn)定時刪除文件夾的目的。

7.cmd 刪除制定文件架下制定日期之間的文件

@echo off
set tt=7&set ph=D:\SHLongYang_DBBK
for /f "tokens=1-3 delims=-/\:. " %%i in ("%date%") do set /a p1=%%i,p2=100%%j%%100,p3=100%%k%%100
    if %p3% gtr %TT% goto ppp
:nxt
set/a p2-=1
   if %p2% equ 0 set/a p1-=1&&set p2=12
   set/a PN2="!(p1%%4)&!(!(p1%%100))|!(p1%%400)",PN2=28+PN2
   for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i
   if %p3% leq %tt% goto nxt
:ppp
set/a p3=%p3%-%tt%
setlocal enabledelayedexpansion
   for %%i in (p2 p3 t1 t2) do if !%%i! lss 10 set %%i=0!%%i!
   for /f "tokens=*" %%i in ('dir /b /s "%ph%"') do (
   set "ta=%%~ti"
   if exist "%%i\" (
   if "!ta:~0,4!!ta:~5,2!!ta:~8,2!" leq "!p1!!p2!!p3!" rd /s /q "%%i" 2>nul
   ) else if "!ta:~0,4!!ta:~5,2!!ta:~8,2!" leq "!p1!!p2!!p3!" del /a/q/f "%%i" >nul 2>nul
   )

這段大家可以參考研究一下

相關(guān)文章

最新評論