【发布时间】:2018-09-05 09:54:24
【问题描述】:
我想跳过最新的3 files created 和delete the rest of the files。我需要的是,如果有文本、xml 和 zip 文件,我们只需要删除 zip 文件并将文本和 xml 文件留在后面,剩下的文件总数应该是 3。如果除了 .zip 之外还有 3 个或更多文件文件,删除所有 .zip 文件;如果数量较少,请保留最新的 .zip 文件,以便总共剩下 3 个文件。任何人都可以帮忙。我被这个困住了
例如(括号内的文件创建日期):
Folder A contains - aa.txt(2/1/18), bb.xml(3/1/18), cc.zip(4/1/18), dd.zip(2/1/18),ee.zip(5/1/18)
删除后我需要的是
aa.txt, bb.xml, ee.zip
这是我写的
@ECHO OFF
SETLOCAL
SET "targetdir=C:\source"
SET /a retain=3
FOR /f "skip=%retain%delims=" %%a IN (
'dir /b /a-d /o-d "%targetdir%\*.zip" '
) DO DEL (DEL "%targetdir%\%%a.zip"
GOTO :EOF
【问题讨论】:
-
如果扩展名不是
.zip的文件超过3个怎么办? -
需要保留所有文件@aschipfl
-
所以基本上,如果除了
.zip文件之外还有3个或更多文件,删除所有.zip文件;如果数量较少,请保留最新的.zip文件,以便总共剩下 3 个文件。这正是你想要的,对吗?请edit您的问题相应!
标签: windows batch-file scripting