@echo off setlocal enabledelayedexpansion REM === SET TO 1 TO PREVIEW WITHOUT MAKING CHANGES, 0 TO RUN FOR REAL === set "DRYRUN=1" REM === ROOT FOLDER — leave as %~dp0 to use the folder this bat file lives in === set "ROOT=%~dp0" REM === GET TODAY'S DATE IN YYYYMMDD FORMAT === for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd"') do set TODAY=%%i set "NEWNAME=PT STMT_%TODAY%.txt" set "FOLDERNAME=PT STMT_%TODAY%" if "%DRYRUN%"=="1" ( echo [DRY RUN] No files will be changed. ) else ( echo [LIVE] Changes will be made. ) echo Processing folders under %ROOT%... echo. REM === LOOP THROUGH ALL SUBFOLDERS === for /r "%ROOT%" %%d in (.) do ( set "SKIP=0" echo %%d | findstr /i /c:"PT STMT" /c:"archive" >nul if not errorlevel 1 set "SKIP=1" if "!SKIP!"=="0" ( if exist "%%d\export.txt" ( echo Found: %%d pushd "%%d" if "%DRYRUN%"=="1" ( echo RENAME export.txt ^> %NEWNAME% echo MKDIR %FOLDERNAME% echo MOVE %NEWNAME% ^> %FOLDERNAME%\ for %%f in ("*.tif") do ( echo MOVE %%~nxf ^> %FOLDERNAME%\ ) ) else ( ren "export.txt" "%NEWNAME%" mkdir "%FOLDERNAME%" 2>nul move "%NEWNAME%" "%FOLDERNAME%\" for %%f in ("*.tif") do ( move "%%f" "%FOLDERNAME%\" ) ) echo. popd ) ) ) echo Done. pause