批处理脚本只删除扩展名为.zip

时间:2018-03-27 05:53:38

标签: windows batch-file scripting

我想跳过最新的3 files createddelete the rest of the files。我需要的是,如果有文本,xml和zip文件,我们只需要删除zip文件并留下文本和xml文件,剩下的文件总数应为3.如果有3个或更多文件而不是.zip文件,删除所有.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

1 个答案:

答案 0 :(得分:1)

考虑到你的问题的参数,一个非常简单的方法,虽然不是最有效或最快的,但是会这样做:

@Echo Off
Set "targetdir=C:\source"
Set "retain=3"
CD /D "%targetdir%" 2>Nul || Exit /B
For /F "Skip=%retain% Delims=" %%A In ('Dir /B/A-D/O-D/TC'
) Do If /I "%%~xA"==".zip" Del "%%A"