我想跳过最新的3 files created
和delete 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
答案 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"