我需要一个批处理文件才能删除1天前的文件夹。
文件夹包含内部文件,这些文件将与文件夹一起被删除
我尝试了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
我对已经表明的代码修复或可以工作的新代码感兴趣。
答案 0 :(得分:1)
似乎您只想检查所有以log_
开头的日志目录,如果它们早于一天,或者至少有一个昨天的日期,则将其删除;如果是这样,我相信这就是您要:
forfiles /P "D:\Programmi Installati" /M "log_*" /D -1 /C "cmd /c if @isdir==TRUE echo rd /s /q @path"
注意!这只会回显命令rd /s /q path
,以便您验证命令是否达到了预期的目的。如果满意,请从echo
echo rd /s /q @path