我需要一个批处理文件来删除一天前的文件夹。
文件夹包含将与文件夹一起删除的内部文件
我尝试了 3 种不同的代码,但没有删除旧文件夹。
要删除的文件夹所在路径(路径中有空格):
D:\Programmi Installati\
示例文件夹名称(以 log_ 开头)
log_1
log_10-12-2019
log_2008-10000
log_222222211111
天数:1
:: Code 1
@echo off
setlocal
set target="D:\Programmi Installati\"
set days=1
for /f "usebackq delims=" %%G in (
'forfiles /p "%target%" /c "cmd /c if /i @isdir == true echo @path" /d -%days% 2^>nul'
) do rd /s /q "%%~G"
pause
endlocal & exit /b
:: Code 2
forfiles /p "D:\Programmi Installati\" /d -1 /c "cmd /c if @isdir==true rd /s /q @path"
:: Code 3
FORFILES /P "D:\Programmi Installati\" /S /C "cmd /c IF @isdir == TRUE rmdir /S @path /Q" -D -1
我感兴趣的是已经指示的代码修复或有效的新代码。
答案1
这是有效的解决方案
@echo off
forfiles /P "D:\Programmi Installati" /M "log_*" /D -1 /C "cmd /c if @isdir==TRUE echo rd /s /q @path"
此代码在 1 天后仅删除包含“log_”的文件夹。