【发布时间】:2014-06-21 18:07:02
【问题描述】:
我有一个程序每 30 分钟创建一次备份,但不会删除旧文件。我正在寻找一个将在任务调度程序上运行的脚本,该脚本将在程序创建的文件夹中查找。它按日期创建文件夹,如下所示/年/月/日/*file.zip 的名称。我做了一些研究并提出了
@ECHO OFF
for /f "usebackq delims== tokens= 2" %%i in ( WMIC OS GET localdatetime /format:value ) do set localTime=%%i
set "YYYY=%localTime:~0,4%"
set "M=%localTime:~4,1%"
set "MM=%localTime:~5,1%"
set "D=%localTime:~6,1%"
set "DD=%localTime:~7,1%"
if %M%==0 set M=
if %D%==0 set D=
cd /d "~%~dp0"
FOR /F "tokens=*" %%X IN ('dir .\%YYYY%\%M%%MM%\%D%%DD%\Backup-serversave-%YYYY%-%M%%MM%-%D%%DD%--*.zip /b /o:-d') DO set FILENAME=%%~X
rem FILENAME now contains the last element
if "%FILENAME%" neq "" DEL "%FILENAME%"
pause
此脚本在今天的日期前查看文件夹,然后应该删除文件夹中最旧的文件。但是每次我运行它时,我得到的只是一个“找不到文件”,它告诉我它说它找不到的确切文件。所以我需要一点帮助才能让它工作。如果有任何方法可以使其仅在文件夹中有五个文件后才删除,那也很棒。如果有人可以帮助我,那就太棒了。
更新。得到了一个很好的答案,但需要更多的帮助。如果那里的任何人都可以找到一种方法让它在更改日期时删除昨天的文件夹,那将是惊人的,我正在寻找所有东西,到目前为止还没有发现任何东西。
【问题讨论】:
标签: file batch-file delete-file