I have a batch file which uses a For /F loop to find all files with a specific (cadence backup uses <filename.ext,1> for backup) setup.
For /F "delims=" %%A in ( 'Dir /B/S "*,*" ^| findstr ",[0-9][0-9]*$" ' ) Do Del "%%A"
and this works for this special setup (This is a special search for an unusual file name format of ABCDE.ZYX,1).
How do I reuse the findstr to find all .bak files as a second search string?
Separate question:
How does this line ( 'Dir /B/S "*,*" ^| findstr ",[0-9][0-9]*$" ' )
work?
What is it doing? Please explain the functions and attributes.
My Working Solution. Thanks to those who explained the functions involved.
@ECHO off
set cadencedeleted=0
set autodeleted=0
set altiumdeleted=0
ECHO Cadence Back-up Deletion In Progress
For /F "delims=" %%A in ( 'Dir /B/S "*,*" ^| findstr ",[0-9][0-9]*$" ' ) Do (
Del "%%A"
set cadencedeleted=1
)
ECHO AutoCAD Back-up Deletion In Progress
For /F "delims=" %%A in ( 'Dir /B/S "*.bak" 2^>nul ' ) Do (
Del "%%A"
set autodeleted=1
)
ECHO Altium Back-up Deletion In Progress
ECHO Note Altium *.pcbdoc.zip, *.schdoc.zip, *.outjob.zip, *.log,
ECHO *.prjpcb.zip, *.schlib.zip, *.pcblib.zip are the only ones deleted
For /F "delims=" %%A in ( 'Dir /B/S "*.pcbdoc.zip" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
For /F "delims=" %%A in ( 'Dir /B/S "*.SchDoc.zip" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
For /F "delims=" %%A in ( 'Dir /B/S "*.OutJob.zip" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
For /F "delims=" %%A in ( 'Dir /B/S "*.log" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
For /F "delims=" %%A in ( 'Dir /B/S "*.PcbLib.zip" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
For /F "delims=" %%A in ( 'Dir /B/S "*.SchLib.zip" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
For /F "delims=" %%A in ( 'Dir /B/S "*.prjpcb.zip" 2^>nul ' ) Do (
Del "%%A"
set altiumdeleted=1
)
ECHO Deletion checks
IF %cadencedeleted%==1 (
ECHO Cadence backup files deleted
) ELSE (
ECHO Cadence backup files not found
)
IF %autodeleted%==1 (
ECHO AutoCAD backup files deleted
) ELSE (
ECHO AutoCAD backup files not found
)
IF %altiumdeleted%==1 (
ECHO Altium Backup files deleted
) ELSE (
ECHO Altium Backup files not found
)
ECHO on
TIMEOUT 5