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
Post a Comment