Ero*_*ocM 3 windows command-line cmd batch-file
我在批处理文件中有以下内容:
: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
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是备份有几个星期没有运行,最终删除了我所有的备份,因为它们已经超过 2 周了。
我需要的是保留最近的 10 个最新备份。
任何人都知道我会怎么做?我没有写过一次,因为我对批处理文件不太熟悉。
FOR /F SKIP在按最后修改日期排序后,您可以使用忽略最近修改的最后 10 个条目:
for /f "skip=10 eol=: delims=" %%F in ('dir /b /o-d *.zip') do @del "%%F"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11793 次 |
| 最近记录: |