Tôi đã viết một tập tin batch để thực hiện như sau:của Windows tập tin thực thi chỉ giữ lại những 30 file cuối cùng
REM @ECHO OFF
rem %1 = coid
rem %2 = rpg location with ending/
rem get the path of this cmd script
SET SUBDIR=%~dp0
SET BKUPDIR=%SUBDIR%BACKUPS\
SET LOGFILE=%BKUPDIR%backup.log
ECHO ************************************************* >>%LOGFILE%
ECHO STARTING BACKUP FOR %1 AT %2 >>%LOGFILE%
FOR /f "skip=1" %%x in ('wmic os get localdatetime') DO IF NOT defined mydate SET mydate=%%x
SET filedate=%mydate:~0,14%
SET fullname=%BKUPDIR%%1_%FILEDATE%.ZIP
ECHO BKUPDIR: %BKUPDIR% >>%LOGFILE%
ECHO mydate: %mydate% >>%LOGFILE%
ECHO filedate: %filedate% >>%LOGFILE%
ECHO fullname: %fullname% >>%LOGFILE%
ECHO SUBDIR: %SUBDIR% >>%LOGFILE%
rem lets make sure the backup directory exists before starting
IF NOT EXIST %BKUPDIR% MD %BKUPDIR% >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %2%1*.d
IF ERRORLEVEL 255 ECHO user_stopped_the_process >>%LOGFILE%
IF ERRORLEVEL 8 ECHO not_enough_memory >>%LOGFILE%
IF ERRORLEVEL 7 ECHO command_line_error >>%LOGFILE%
IF ERRORLEVEL 2 ECHO fatal_error >>%LOGFILE%
IF ERRORLEVEL 1 ECHO ok_warnings >>%LOGFILE%
IF ERRORLEVEL 0 GOTO END
IF EXIST %fullname% DEL %fullname%
:END
ECHO FINISHING BACKUP FOR %1 >>%LOGFILE%
ECHO ************************************************* >>%LOGFILE%
set mydate=
Tôi lưu các tập tin như %1
và ngày/giờ tập tin được tạo ra:
SSS_20130110133304.ZIP
SSS_20130110133336.ZIP
Tôi đang chạy tính năng này trong trình lập lịch tác vụ để chạy mỗi tối.
Tôi muốn giữ không cho quá nhiều tệp zip trong thư mục vì vậy tôi muốn giữ 30 tệp zip cuối cùng tồn tại.
Tôi bị kẹt vào thời điểm này. Làm cách nào để giữ lại hầu hết các tệp zip RECENT 30 để tôi không bị tải tệp zip?
+1 để thực hiện 99% công việc/trình bày một câu hỏi rõ ràng. –