backup - Batch file to delete all folders in a directory except the newest folder -


i trying delete old backups in specific folder after new backup has been done. not have experience dos commands mashed couple of scripts found on internet one:

::(c)2008 "buckfix" www.winsupportforum.de @echo off setlocal  set workdir="m:\backups\cache_ssd\" set folder= :: list of folders, oldest first dir %workdir% /ad /b /t:w /od > %temp%folder.tmp /f "tokens=1* delims=" %%i in (%temp%folder.tmp) set "folder=%%i" del %temp%folder.tmp  ::checking if right one...just debugging echo newest... %folder%  set filedir="m:\backups\cache_ssd\%folder%"  ::delete folders except %folder% ...but how?  pause 

so picking newest folder works fine don't know how delete folders except one. think it'll simple for-loop attempts failed far. has safe method backup folder , want keep recent backup. had delete scripts worked when there 1 folder deleted 1 well. , when directory empty killed whole directory.

@echo off setlocal  set "workdir=m:\backups\cache_ssd\" set "folder=" /f "tokens=* delims=" %%i in ('dir %workdir% /ad /b /tw /o-d') (     set "folder=%%~fi"     goto :break ) :break echo newest... %folder%  /f "skip=1 tokens=* delims=" %%i in ('dir %workdir% /ad /b /tw /o-d')   (     echo rd /s /q "%%~fi" )  pause 

test this.actual removing command echoed .delete echo in echo rd /s /q "%%~fi" if ok.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -