gpt4 book ai didi

windows - 批处理文件删除除最新的 10 个文件之外的所有文件

转载 作者:可可西里 更新时间:2023-11-01 09:20:08 25 4
gpt4 key购买 nike

我在批处理文件中有以下内容:

:REMOLDFILES
ECHO Removing files older than 14 days. >>%LOGFILE%
cd /d %BKUPDIR%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.zip ^2^>nul') DO IF EXIST "%%~fA" ECHO "%%~fA" >>%LOGFILE%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.zip ^2^>nul') DO IF EXIST "%%~fA" DEL "%%~fA" >>%LOGFILE%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.log ^2^>nul') DO IF EXIST "%%~fA" ECHO "%%~fA" >>%LOGFILE%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.log ^2^>nul') DO IF EXIST "%%~fA" DEL "%%~fA" >>%LOGFILE%
IF [%3]==[Y] GOTO SECONDBACKUPDIR
IF [%3]==[y] GOTO SECONDBACKUPDIR
GOTO END

我遇到的问题是备份有几周没有运行,最终删除了我所有的备份,因为它们已经超过 2 周了。

我需要的是让它保留最近 10 个最新的备份。

有人知道我会怎么做吗?我一次都没有写这个,因为我对批处理文件不太熟悉。

最佳答案

您可以使用 FOR/F SKIP 在按最后修改日期排序后忽略最后 10 个最近修改的条目:

for /f "skip=10 eol=: delims=" %%F in ('dir /b /o-d *.zip') do @del "%%F"

关于windows - 批处理文件删除除最新的 10 个文件之外的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27788132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com