簡體   English   中英

通過批處理文件刪除超過3天的文件和文件夾

[英]Deleting files and folder older than 3 days via batch file

我正在嘗試編寫一個批處理腳本,以刪除數據已超過3天的文件和文件夾。 但是文件夾中有文件,並且一旦刪除文件,該文件夾的最后修改數據將更改為今天,這導致該文件夾不被刪除。

我的腳本有3個不同的文件:

1.由路徑和時間組成的屬性文件

path_3=D:\Scripts\DeleteLogsScripts\test,3

2.批處理文件讀取路徑和時間,並將其作為變量發送到另一個批處理文件

setlocal enabledelayedexpansion
for /F "tokens=1,2,3 delims==," %%G IN (data.properties) DO (
@echo %%G %%H %%I
set local_path=%%H
set local_time=%%I
call backup_filecheck1.bat !local_path! !local_time!
)

3.批處理文件刪除文件

set local_path=%1
echo %local_path%
set local_time=%2
Forfiles /P "%local_path%" /S /D -%local_time% /C "Cmd /C If @isdir==FALSE Del @Path"
Forfiles /p "%local_path%" /S /C "Cmd /C If @isdir==TRUE RD /s /q @Path 2>Nul"

要從中刪除的文件夾:

原始文件夾結構

刪除文件后

如您所見,該文件夾的上次修改日期更改為今天。

我不明白如何解決這個問題。

我終於弄清楚了怎么做。 我更新腳本的方式是,刪除文件后,它將對文件進行排序並刪除空文件夾

set local_path=%1 echo %local_path% set local_time=%2 Forfiles /P "%local_path%" /S /D -%local_time% /C "Cmd /C If @isdir==FALSE Del @Path" cd /D %local_path%\\%%a for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r') do rd "%%i">NUL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM