windows - Batch File - Delete Files Based Off Number In File Name -
i have task assigned me know how other languages, windows batch/cmd requirement has me little baffled.
there directory several files:
- filename0.txt
- filename0-2014.txt
- filename0-2013.txt
- filename1.txt
- filename1-2014.txt
- filename1-2013.txt
- filename2.txt
- filename2-2014.txt
- filename2-2013.txt
that same pattern might repeat way filename54.txt , on. keep in mind have simplified examples various reasons, format of names same.
essentially there main files (filename0.txt, filename1.txt, etc) , truncated files earlier (filename1-2014.txt, filename1-2013.txt, etc) , each set number can 0 whatever...highest i've seen 54 change.
what need have batch/cmd file keep filename0*.tx files, main files other number sequences (filename1.txt, filename2.txt, etc), , delete other truncated files of sequences other filename0 set.
i figured can focus on "-" after sequence number, delete filename1-*.txt, trying figure out systematic way make work sequences above 0 perplexing me.
thoughts/comments/examples?
@echo off setlocal %%a in (filenames*.txt) /f "tokens=1,2delims=-" %%s in ("%%a") if "%%t"=="" set "keep=%%~na"&goto nextstep :nextstep echo keep %keep%* %%a in (filenames*-*.txt) /f "tokens=1,2delims=-" %%s in ("%%a") if "%%s" neq "%keep%" echo del "%%a" goto :eof the required del commands merely echoed testing purposes. after you've verified commands correct, change echo del del delete files.
(i've changed template filenames suit testing)
Comments
Post a Comment