I have a process that consumes data files from a specific directory and then loads into a target application. However, after the load, the files are not moved/archived. Therefore, when I access the directory with each call to the function, the same file is read into the for loop again obviously.
My question is there a way to check if the file name has already been used and if so, skip and read in the next file? My only thought (and work around right now) has been after the file has been consumed, move it to the TEMP directory. Then, after all files have been processed, move all files back to the main directory.
Here is the script - please refer to the function :GETDATAFILENAME:
Code: Select all
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::-- Script Name: FDMEE_Data_Load.cmd --::
:: --::
::-- Description: Load Actuals to EPBCS --::
::-- --::
:: --::
::-- Calls: _env.cmd --::
::-- Called By: Not Applicable --::
:: --::
::-- Parameters: Call _env.cmd to get variable to determine: --::
:: --::
::-- 1. Path variables --::
::-- 2. User ID(s) --::
::-- 3. Logon(s) --::
::-- 4. Password(s) --::
::-- 5. Server(s) --::
::-- 6. Application(s) --::
::-- 7. Database(s) --::
::-- 8. etc --::
:: --::
::-- Author: Firm --::
::-- Date: 10/10/2018 --::
:: --::
::--:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::-- Set Working Directory as Script Path --::
CD /D "%~dp0"
::-- Call Environment File --::
CALL "_env.cmd"
::-- Set Process Output Variables --::
SET "PLOGPATH=%~n0_Logs\"
SET "PERRORPATH=%~n0_Errors\"
::-- Establish Intrapath variables & directories --::
SET "INTRAPATH=%LOGPATH%%PLOGPATH%"
SET "ERRORINTRAPATH=%ERRORPATH%%PERRORPATH%"
FOR %%F IN ( "%INTRAPATH%" "%ERRORINTRAPATH%" ) DO IF NOT EXIST "%%~F" MKDIR "%%~F"
::-- Parse DOS TIME variable in saveable format --::
FOR /F "tokens=1-2 delims=/:" %%A IN ("%TIME%") DO ( SET "TIMESTAMP=%%A%%B" )
FOR /F "tokens=* delims= " %%C IN ("%TIMESTAMP%") DO ( SET "TIMESTAMP=%%C" )
SET "DATETIME=%date:~-4,4%%date:~-10,2%%date:~-7,2%_%TIMESTAMP%"
SET "YYYY_MMDD=%date:~-4,4%_%date:~-10,2%%date:~-7,2%"
::-- Establish Log ^& Error files --::
SET "LOGFILE=%INTRAPATH%%DATETIME%_%~n0.log"
SET "ERRORFILE=%ERRORINTRAPATH%%DATETIME%_%~n0.err"
::-- Perform Additional Variable Assignments --::
SET "FDMEE_BIN=%FILEPATH%FDMEE\PandL\"
SET "DLR1=DLR_SAP_EPBCS_PANDL_BS" & SET "FDMEE_INBOX1=inbox/SAP_EPBCS_PANDL" & SET "DATAFILE1=hp_balancesheet_extract" & SET "DLRLF1=SKY"
SET "DLR2=DLR_SAP_EPBCS_PANDL_PC" & SET "FDMEE_INBOX2=%FDMEE_INBOX1%" & SET "DATAFILE2=hp_profitandloss_extract" & SET "DLRLF1=%DLRLF1%"
SET "DLR3=DLR_SAP_EPBCS_EXP_DT_ACT" & SET "FDMEE_INBOX3=inbox/SAP_EPBCS_EXP" & SET "DATAFILE3=hp_data_extracts" & SET "DLRLF1=%DLRLF1%"
SET "DLR4=DLR_SAP_EPBCS_EXP_OTH_ACT" & SET "FDMEE_INBOX4=%FDMEE_INBOX3%" & SET "DATAFILE4=hp_other_extract" & SET "DLRLF1=%DLRLF1%"
SET "SVAR_MONTH1=AUTOMATION_Month"
SET "SVAR_YEAR1=AUTOMATION_Year"
SET "PRE_BR=AUTO_Clear_PandL"
SET "POST_BR=AUTO_Agg_PandL"
SET /A "CNT=0" & SET /A "TOTCNT=0"
SET "PING_DELAY=0"
SET "CMD=FOR %%F IN ( "%ERRORFILE%" "%LOGFILE%" ) DO ECHO"
::-- Begin Script Processing --::
>>"%LOGFILE%" (
ECHO ********************************************************
ECHO %~n0 - starting at %TIME%
ECHO ********************************************************
ECHO.
ECHO ********************************************************
ECHO Login to Cloud Environment
ECHO ********************************************************
ECHO.
ECHO Action : Login
ECHO Login : %CLOUD_UNAME%
ECHO Password : %CLOUD_PSSWD%
ECHO Cloud URL : %CLOUD_URL%
ECHO Domain : %CLOUD_DOMAIN%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Logging into Cloud Environment...
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" login %CLOUD_CREDS% %CLOUD_URL% %CLOUD_DOMAIN% && (
ECHO Successful : Login to Cloud Environment >>"%LOGFILE%"
) || (
%CMD% Failed : Login to Cloud Environment >>"%%~F"
SET "ERR=T" & GOTO END
)
::-- Get %DATAFILENAME% ^& Determine Load POV --::
CLS
:RUNLOAD
CALL :GETDATAFILENAME
FOR %%A IN ( "ERR" "ERR1" ) DO IF DEFINED %%~A GOTO END
IF "%CNT%"=="1" (
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Set Substitution Variables
ECHO ********************************************************
ECHO.
ECHO Action : setsubstvars
ECHO Subvar : %SVAR_MONTH1% = %MONTH%
ECHO Subvar : %SVAR_YEAR1% = FY%YEAR%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Setting Substitution Variables...
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" setsubstvars All %SVAR_MONTH1%=%MONTH% %SVAR_YEAR1%=FY%YEAR% >nul 2>&1 && (
ECHO Successful : Update Substitution Variables >>"%LOGFILE%"
) || (
%CMD% Failed : Update Substitution Variables >>"%%~F"
SET "ERR=T" & GOTO END
)
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Execute Business Rule
ECHO ********************************************************
ECHO.
ECHO Action : runbusinessrule
ECHO Business Rule : %PRE_BR%
ECHO Subvar : %SVAR_MONTH1% = %MONTH%
ECHO Subvar : %SVAR_YEAR1% = FY%YEAR%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Executing Business Rule - %PRE_BR%
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" runbusinessrule "%PRE_BR%" >nul 2>&1 && (
ECHO Successful : Execute Business Rule >>"%LOGFILE%"
) || (
%CMD% Failed : Execute Business Rule >>"%%~F"
SET "ERR=T" & GOTO END
)
CLS
)
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Delete FDMEE Data File
ECHO ********************************************************
ECHO.
ECHO Action : deletefile
ECHO File Name : %DATAFILENAME%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Deleting FDMEE Data File - %DATAFILENAME%
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" deletefile %FDMEE_INBOX%/%DATAFILENAME% >nul 2>&1 && (
ECHO Successful : Delete FDMEE Data File >>"%LOGFILE%"
) || (
%CMD% Warning : %DATAFILENAME% can not be deleted >>"%%~F"
IF EXIST "deletefile*.log" MOVE /Y "deletefile*.log" "%INTRAPATH%" >nul 2>&1
)
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Upload FDMEE Data File
ECHO ********************************************************
ECHO.
ECHO Action : uploadfile
ECHO File Name : %DATAFILENAME%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Uploading FDMEE Data File - %DATAFILENAME%
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" uploadfile "%FDMEE_BIN%%DATAFILENAME%" %FDMEE_INBOX% >nul 2>&1 && (
ECHO Successful : Upload FDMEE Data File >>"%LOGFILE%"
) || (
%CMD% Failed : Upload FDMEE Data File >>"%%~F"
SET "ERR=T" & GOTO END
)
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Execute Data Load Rule
ECHO ********************************************************
ECHO.
ECHO Action : rundatarule
ECHO DLR Name : %DLR%
ECHO DLR Inbox : %FDMEE_INBOX%
ECHO Start POV : %STARTPOV%
ECHO End POV : %ENDPOV%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Executing Data Load Rule - %DLR%
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" rundatarule "%DLR%" %STARTPOV% %ENDPOV% REPLACE STORE_DATA %DATAFILENAME% >nul 2>&1 && (
ECHO Successful : Execute Data Load Rule >>"%LOGFILE%"
) || (
%CMD% Failed : Execute Data Load Rule >>"%%~F"
SET "ERR=T" & SET "FDMEE_ERR=T"
)
CALL :EXTRACT_FDMEE_LOG "%DLRLF%" || GOTO END
IF DEFINED DLRFLAG (
SET "DLR=DLR_SAP_EPBCS_PANDL_PL"
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Execute Data Load Rule
ECHO ********************************************************
ECHO.
ECHO Action : rundatarule
ECHO DLR Name : !DLR!
ECHO DLR Inbox : %FDMEE_INBOX%
ECHO Start POV : %STARTPOV%
ECHO End POV : %ENDPOV%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Executing Data Load Rule - !DLR!
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" rundatarule "!DLR!" %STARTPOV% %ENDPOV% REPLACE STORE_DATA %DATAFILENAME% >nul 2>&1 && (
ECHO Successful : Execute Data Load Rule >>"%LOGFILE%"
) || (
%CMD% Failed : Execute Data Load Rule >>"%%~F"
SET "ERR=T" & SET "FDMEE_ERR=T"
)
CALL :EXTRACT_FDMEE_LOG "%DLRLF%" || GOTO END
SET "DLR=DLR_SAP_EPBCS_PANDL_PLANT"
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Execute Data Load Rule
ECHO ********************************************************
ECHO.
ECHO Action : rundatarule
ECHO DLR Name : !DLR!
ECHO DLR Inbox : %FDMEE_INBOX%
ECHO Start POV : %STARTPOV%
ECHO End POV : %ENDPOV%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Executing Data Load Rule - !DLR!
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" rundatarule "!DLR!" %STARTPOV% %ENDPOV% REPLACE STORE_DATA %DATAFILENAME% >nul 2>&1 && (
ECHO Successful : Execute Data Load Rule >>"%LOGFILE%"
) || (
%CMD% Failed : Execute Data Load Rule >>"%%~F"
SET "ERR=T" & SET "FDMEE_ERR=T"
)
CALL :EXTRACT_FDMEE_LOG "%DLRLF%" || GOTO END
SET "DLRFLAG="
)
IF "%CNT%"=="4" (
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Execute Business Rule
ECHO ********************************************************
ECHO.
ECHO Action : runbusinessrule
ECHO Business Rule : %POST_BR%
ECHO Subvar : %SVAR_MONTH1% = %MONTH%
ECHO Subvar : %SVAR_YEAR1% = FY%YEAR%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Executing Business Rule - %POST_BR%
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" runbusinessrule "%POST_BR%" >nul 2>&1 && (
ECHO Successful : Execute Business Rule >>"%LOGFILE%"
) || (
%CMD% Failed : Execute Business Rule >>"%%~F"
SET "ERR=T" & GOTO END
)
)
IF "%CNT%" NEQ "4" GOTO RUNLOAD
:END
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Logout of Cloud Environment
ECHO ********************************************************
ECHO.
ECHO Action : Logout
ECHO --------------------------------------------------------
ECHO.
)
ECHO Logging out of Cloud Environment ...
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" logout >nul 2>&1 && (
ECHO Successful : Logout of Cloud Environment >>"%LOGFILE%"
) || (
%CMD% Failed : Logout of Cloud Environment >>"%%~F"
SET "ERR=T"
)
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Execute Purge Maintenance
ECHO ********************************************************
ECHO.
)
ECHO Executing Purge Maintenance...
PING -n %PING_DELAY% 127.0.0.1>nul
::-- Paths are added to below function call --::
::-- Age is set in function --::
CALL :PURGE ""%INTRAPATH:~0,-1%","%ERRORINTRAPATH:~0,-1%","%ARCHIVEPATH:~0,-1%""
::-- Determine Exit Protocol --::
IF DEFINED ERR GOTO AbnormalExit
:NormalExit
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO %~n0 - Completed Successfully
ECHO ********************************************************
ECHO ********************************************************
ECHO Normal Exit - %~nx0
ECHO ********************************************************
DATE /t
TIME /t
)
CALL :EMAIL
CALL :ARCHIVE
EXIT /B 0
:AbnormalExit
FOR %%L IN ( "%LOGFILE%" "%ERRORFILE%" ) DO (
>>"%%~L" (
ECHO.
ECHO ********************************************************
ECHO %~n0 results in Abnormal Exit
ECHO ********************************************************
ECHO.
ECHO ********************************************************
ECHO Abnormal Exit - %~nx0
ECHO ********************************************************
DATE /t
TIME /t
)
)
CALL :EMAIL
CALL :ARCHIVE
EXIT /B 1
:::::::::::::::::::::::::::::::::::::::::::::::::
::-- F U N C T I O N S B E L O W H E R E --::
:::::::::::::::::::::::::::::::::::::::::::::::::
:ARCHIVE
::-- Archive Log ^& Error Files in YYYY_MMDD Folder --::
::-- RD then used to remove empty error subdirectories --::
FOR %%F IN ( "%INTRAPATH%" "%ERRORINTRAPATH%" ) DO (
IF NOT EXIST "%%~F%YYYY_MMDD%" MKDIR "%%~F%YYYY_MMDD%"
IF EXIST "%%~F*" MOVE "%%~F*" "%%~F%YYYY_MMDD%" >nul 2>&1
)
RD "%ERRORINTRAPATH:~0,-1%" >nul 2>&1
GOTO :EOF
:EMAIL
::-- Check to see if there are any epmautomate generated log files --::
::-- If so, attach to failure email message --::
CALL :EPMAUTO_CHK
SETLOCAL DISABLEDELAYEDEXPANSION
IF NOT DEFINED ERR (
SET "SW_BODY=%SW_MAIL_BIN%SW_BODYTEXT\FDMEE_LOAD.txt"
SET "SW_SUB=ATTENTION : %~nx0 - Successful"
SET "SW_PRIORITY="
SET "SW_TO_EMAIL=%SW_FDMEE_LOAD_DL%"
) ELSE (
SET "SW_BODY=%SW_MAIL_BIN%SW_BODYTEXT\FDMEE_LOAD_ERR.txt"
SET "SW_SUB=WARNING : %~nx0 - Failed"
SET "SW_PRIORITY=/Priority "High""
SET "SW_TO_EMAIL=%SW_FDMEE_LOAD_ERR_DL%"
)
REM CALL "%SW_MAIL_BIN%SwithMail.exe" /s /x "%SW_MAIL_BIN%SwithMailSettings.xml"^
REM /SSL /to "%SW_TO_EMAIL%" /sub "%SW_SUB%" /btxt "%SW_BODY%" /a "%SW_ATTACH%" %SW_PRIORITY%
IF EXIST "*.log" MOVE /Y "*.log" "%INTRAPATH%" >nul 2>&1
GOTO :EOF
:EPMAUTO_CHK
FOR %%F IN ( "*.log" ) DO SET "ERR_FILE=%%~F"
SET "SW_ATTACH=%LOGFILE%"
IF DEFINED ERR_FILE IF DEFINED FDMEE_ERR IF DEFINED FDMEE_KOFV SET "SW_ATTACH=%LOGFILE%|%ERR_FILE%|%INTRAPATH%%DATETIME%_%MAXFILE%|%INTRAPATH%%FDMEE_KOF%"
IF NOT DEFINED ERR_FILE IF DEFINED FDMEE_ERR IF DEFINED FDMEE_KOFV SET "SW_ATTACH=%LOGFILE%|%INTRAPATH%%DATETIME%_%MAXFILE%|%INTRAPATH%%FDMEE_KOF%"
IF DEFINED ERR_FILE IF NOT DEFINED FDMEE_ERR SET "SW_ATTACH=%LOGFILE%|%ERR_FILE%"
::-- Break out of CALL :EPMAUTO_CHK function --::
EXIT /B 0
:EXTRACT_FDMEE_LOG
SET "OUTBOX_BIN=outbox/logs/"
SET "NAME=%~1"
SET "MAXFILE="
SET "FILE=temp.txt"
CALL "%EPMAUTOMATE%" Listfiles > "%FILE%"
FOR /F "tokens=*" %%A IN ('FINDSTR /LC:"%OUTBOX_BIN%%NAME%_" %FILE%') DO (
SET "NAME=%%~nA" & IF "!NAME!" GTR "!MAXFILE!" SET "MAXFILE=!NAME!.log"
)
CLS
>>"%LOGFILE%" (
ECHO.
ECHO ********************************************************
ECHO Download FDMEE Log File
ECHO ********************************************************
ECHO.
ECHO Action : downloadfile
ECHO Log Name : %MAXFILE%
ECHO --------------------------------------------------------
ECHO.
)
ECHO Downloading FDMEE Log File - %MAXFILE%
PING -n %PING_DELAY% 127.0.0.1>nul
CALL "%EPMAUTOMATE%" downloadfile %OUTBOX_BIN%%MAXFILE% && (
ECHO Successful : Download FDMEE Log File >>"%LOGFILE%"
) || (
%CMD% Failed : Download FDMEE Log File >>"%%~F"
SET "ERR=1" & EXIT /B 1
)
IF EXIST "%MAXFILE%" MOVE /Y "%MAXFILE%"^
"%INTRAPATH%%DATETIME%_%MAXFILE%" & DEL /F /Q "%FILE%" >nul 2>&1
::-- Extract FDMEE Kickouts from FDMEE process log if FDMEE_ERR variable is defined --::
IF DEFINED FDMEE_ERR (
PUSHD "%INTRAPATH%"
SET "SEARCH=Error: 3303"
SET "FDMEE_KOF=%DATETIME%_KICKOUTS_%MAXFILE%"
FOR /F "tokens=* delims=" %%A IN ('FINDSTR /LC:"!SEARCH!" "%DATETIME%_%MAXFILE%"') DO (
ECHO %%A>>"!FDMEE_KOF!"
)
IF EXIST "!FDMEE_KOF!" SET "FDMEE_KOFV=T"
POPD & EXIT /B 1
)
CLS
GOTO :EOF
:GETDATAFILENAME
PUSHD "%FDMEE_BIN%"
IF "%CNT%"=="0" FOR %%A IN ("*") DO SET /A "TOTCNT+=1"
SET "DATAFILENAME="
FOR %%A IN ("*") DO SET "DATAFILENAME=%%~nxA" & IF DEFINED DATAFILENAME GOTO SETINBOXPATH
::-- No Data Load Files Detected --::
IF "%CNT%"=="0" IF NOT DEFINED DATAFILENAME (
FOR %%F IN ( "%ERRORFILE%" "%LOGFILE%" ) DO (
>>"%%~F" (
ECHO.
ECHO.
ECHO ^|//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\^|
ECHO WARNING: No FDMEE Data File^(s^) Available
ECHO ^|//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\//^|\\^|
ECHO.
)
)
)
::-- Breakout out of function --::
IF "%CNT%"=="0" POPD & SET "ERR=T" & EXIT /B 1
IF "%CNT%" NEQ "0" POPD & SET "ERR1=T" & EXIT /B 0
:SETINBOXPATH
SET "FDMEE_INBOX=" & SET /A "CNT+=1"
ECHO "%DATAFILENAME%" | FINDSTR /LC:"%DATAFILE1%" >nul 2>&1 && ( SET "FDMEE_INBOX=%FDMEE_INBOX1%" & SET "DLR=%DLR1%" & SET "DLRLF=%DLRLF1%")
ECHO "%DATAFILENAME%" | FINDSTR /LC:"%DATAFILE2%" >nul 2>&1 && ( SET "FDMEE_INBOX=%FDMEE_INBOX2%" & SET "DLR=%DLR2%" & SET "DLRLF=%DLRLF1%" & SET "DLRFLAG=T")
ECHO "%DATAFILENAME%" | FINDSTR /LC:"%DATAFILE3%" >nul 2>&1 && ( SET "FDMEE_INBOX=%FDMEE_INBOX3%" & SET "DLR=%DLR3%" & SET "DLRLF=%DLRLF1%")
ECHO "%DATAFILENAME%" | FINDSTR /LC:"%DATAFILE4%" >nul 2>&1 && ( SET "FDMEE_INBOX=%FDMEE_INBOX4%" & SET "DLR=%DLR4%" & SET "DLRLF=%DLRLF1%")
ECHO "%DATAFILENAME%" | FINDSTR /LC:"%DATAFILE5%" >nul 2>&1 && ( SET "FDMEE_INBOX=%FDMEE_INBOX5%" & SET "DLR=%DLR5%" & SET "DLRLF=%DLRLF1%")
IF NOT DEFINED FDMEE_INBOX (
SET "UNMAPPED_BIN=%FDMEE_BIN%\FDMEE_Unmapped\%YYYY_MMDD%"
IF NOT EXIST "!UNMAPPED_BIN!" MKDIR "!UNMAPPED_BIN!"
MOVE /Y "%DATAFILENAME%" "!UNMAPPED_BIN!" >nul 2>&1
>>"%LOGFILE%" (
ECHO WARNING : %DATAFILENAME% not recognized
ECHO File has been moved to the following path for review:
ECHO !UNMAPPED_BIN!
)
SET "ERR=T" & GOTO GETDATAFILENAME
)
::-- Set START ^& END POV --::
SET "FLAG="
ECHO "%FDMEE_INBOX%" | FINDSTR /LC:"EMP_HDCT_EXPENSE" >nul 2>&1 && (SET "FLAG=T")
IF DEFINED FLAG (
FOR /F "tokens=3,4 delims=_." %%A IN ("%DATAFILENAME%") DO (
SET "MONTH=%%A"
SET "YEAR=%%B" & SET "YEAR=!YEAR:~2,2!"
SET "STARTPOV=!MONTH!-!YEAR!" & SET "ENDPOV=!MONTH!-!YEAR!"
)
) ELSE (
SET "MONTH=Xxx"
SET "YEAR=%DATAFILENAME:~-6%"
SET "YEAR=!YEAR:~0,2!"
SET "ENDYEAR=!YEAR:~0,2!" & SET /A "STARTYEAR=!ENDYEAR!-1"
SET "STARTPOV=Oct-!STARTYEAR!" & SET "ENDPOV=Sep-!ENDYEAR!"
)
POPD
GOTO :EOF
:PURGE
SET "PURGE_DIRS=%~1"
FOR %%D IN ( %PURGE_DIRS:,= % ) DO (
SET "SKIP="
IF NOT EXIST "%%~D" (
ECHO "%%~D" | FINDSTR /C:"Errors" >nul 2>&1 && ( SET "SKIP=T" )
IF NOT DEFINED SKIP (
%CMD% The path "%%~D" does not exist >>"%%~F"
SET "ERR=T" & SET "SKIP=T"
)
)
IF NOT DEFINED SKIP (
ECHO "%%~D" | FINDSTR /C:"Archive" >nul 2>&1 && ( SET "PROC=Archives" & SET "AGE=14" )
ECHO "%%~D" | FINDSTR /C:"Errors" >nul 2>&1 && ( SET "PROC=Logs" & SET "AGE=14" )
ECHO "%%~D" | FINDSTR /C:"Logs" >nul 2>&1 && ( SET "PROC=Errors" & SET "AGE=14" )
FORFILES -p "%%D" /s -m *.* -d -!AGE! -c "cmd /c DEL /q @path" 2>nul
FORFILES -p "%%D" -d -!AGE! -c "cmd /c IF @isdir == TRUE RD /S /Q @path" 2>nul
ECHO Successful : Purge !PROC! >>"%LOGFILE%"
)
)
GOTO :EOF