Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- :sub_main_routine
- setlocal enabledelayedexpansion
- set "var1=val"
- set "dirpath=%~dp0"
- call :sub_datetime_formatted _datetime_formatted
- :continue_datetime
- set "datetimeformatted=!_datetime_formatted!"
- set /A "filecount=-1"
- for /F %%i in ('dir /b C:\files\Spreadsheets\TestFiles\ExportedData*.csv') do (
- set "var1=%%i"
- set /A "filecount=filecount+1"
- set "filematches[!filecount!]=!var1!"
- )
- for /L %%i in (0,1,!filecount!) do (
- set "filenameis=!filematches[%%i]!"
- set "logfilefqp=!dirpath!Logfiles\test10-00.log"
- set "fileformatcheck=!filenameis:~12,1!"
- echo fileformatcheck="!fileformatcheck!"
- if not [!fileformatcheck!] == [-] (
- echo FOLLOW_LOOP goto :skip_this_file n
- goto :skip_this_file
- )
- set "file_mm=!filenameis:~10,2!"
- set "file_dd=!filenameis:~13,2!"
- set "file_yy=!filenameis:~16,2!"
- set "to_yyyy=!datetimeformatted:~0,2!"
- set "file_yyyy=!to_yyyy!!file_yy!"
- set "fdateafter=!file_yyyy!-!file_mm!-!file_dd!"
- set "filenamefixed=ExportedData!fdateafter!.csv"
- rem IF DUPLICATE(S), DO INCREMENTED RENAMES
- set /A "haveduplicates=0"
- set /A "countduplicates=0"
- set "duplicatesmsg=duplicatesY!countduplicates!"
- for /F %%r in ('dir /b C:\files\Spreadsheets\TestFiles\!filenamefixed!') do set "dupcheck=%%r"
- if [!dupcheck!] NEQ [] (
- set /A "haveduplicates=1"
- set /A "countduplicates=countduplicates+1"
- :dupcheck_loop
- set /A "format_duplicatecount_return=1"
- echo FOLLOW_LOOP goto :format_duplicatecount !countduplicates!
- goto :format_duplicatecount
- :continue_dupcheck_loop
- set "filenamefixedwithdup=ExportedData!fdateafter!-v!duplicatecount!.csv"
- for /F %%r in ('dir /b C:\files\Spreadsheets\TestFiles\!filenamefixedwithdup!') do set "dupcheckloop=%%r"
- if [!dupcheckloop!] NEQ [] (
- set /A "countduplicates=countduplicates+1"
- echo FOLLOW_LOOP goto :dupcheck_loop !countduplicates!
- goto :dupcheck_loop
- )
- set "filenamefixed=!filenamefixedwithdup!"
- )
- rem ren "C:\files\Spreadsheets\TestFiles\!filenameis!" !filenamefixed!
- set "filenameis=!filenamefixed!"
- set /A "confirmorig=1"
- set /A "confirmren=1"
- for /F %%f in ('dir /b C:\files\Spreadsheets\TestFiles\!filenameis!') do set "confirmorigf=%%f"
- for /F %%r in ('dir /b C:\files\Spreadsheets\TestFiles\!filenamefixed!') do set "confirmr=%%r"
- if [!confirmorigf!] NEQ [] (
- set /A "confirmorig=confirmorigf"
- )
- if !confirmorig! EQU 1 (
- set "origstatus=REMOVED"
- if [!confirmr!] EQU [] (
- set /A "confirmren=confirmr"
- )
- if !confirmren! EQU 1 (
- set "renstatus=duplicateNO,RENAMED"
- ) else (
- set "renstatus=duplicateNO,NOTrenamed"
- )
- ) else (
- set "origstatus=NOTremoved"
- if [!confirmr!] EQU [] (
- set /A "confirmren=confirmr"
- )
- if !confirmren! EQU 1 (
- set /A "countduplicates=countduplicates+1"
- set /A "format_duplicatecount_return=2"
- echo FOLLOW_LOOP goto :format_duplicatecount !countduplicates!
- goto :format_duplicatecount
- :continue_confirmren
- set "duplicatesmsg=duplicatesY!duplicatecount!"
- set /A "haveduplicates=1"
- set "renstatus=!duplicatesmsg!,NOTrenamed"
- ) else (
- set "renstatus=duplicateNO,NOTrenamed"
- )
- )
- rem del /Q "C:\files\Spreadsheets\TestFiles\!filenameis!"
- set /A "confirmdel=1"
- for /F %%f in ('dir /b C:\files\Spreadsheets\TestFiles\!filenameis!') do set "confirmf=%%f"
- if [!confirmf!] NEQ [] (
- set /A "confirmdel=confirmf"
- )
- echo !confirmdel! "!confirmf!"
- if !confirmdel! EQU 1 (
- set "delstatus=DELETED"
- ) else (
- set "delstatus=NOTdeleted"
- )
- rem echo !datetimeformatted!,C:\files\Spreadsheets\TestFiles\!filenameis!,!origstatus!,!renstatus!,!delstatus! >> "!logfilefqp!"
- :skip_this_file
- )
- goto :endlocal_eof
- :format_duplicatecount
- if !countduplicates! LSS 100 (
- set "duplicatecount=!countduplicates!"
- if !countduplicates! LSS 10 (
- set "duplicatecount=0!duplicatecount!"
- )
- set "duplicatecount=0!duplicatecount!"
- )
- if !format_duplicatecount_return! EQU 1 (
- echo FOLLOW_LOOP goto :continue_dupcheck_loop !countduplicates!
- goto :continue_dupcheck_loop
- ) else if !format_duplicatecount_return! EQU 2 (
- echo FOLLOW_LOOP goto :continue_confirmren !countduplicates!
- goto :continue_confirmren
- )
- goto :endlocal_eof
- :sub_datetime_formatted
- set "rawdate=%DATE%"
- set "rawtime=%TIME%"
- set "editdate=!rawdate!"
- set "edittime=!rawtime!"
- set "editdate=!editdate:/=,!"
- set "editdate=!editdate: =,!"
- set "edittime=!edittime::=,!"
- set "edittime=!edittime: =0!"
- set /A "editcountd=0"
- for %%i in (!editdate!) do (
- set /A "editcountd=editcountd+1"
- if !editcountd! EQU 1 (
- set "dt_dow=%%i
- ) else if !editcountd! EQU 2 (
- set "dt_mm=%%i
- ) else if !editcountd! EQU 3 (
- set "dt_dd=%%i
- ) else if !editcountd! EQU 4 (
- set "dt_yyyy=%%i
- )
- )
- set /A "editcountt=0"
- for %%i in (!edittime!) do (
- set /A "editcountt=editcountt+1"
- if !editcountt! EQU 1 (
- set "dt_hr=%%i
- ) else if !editcountt! EQU 2 (
- set "dt_min=%%i
- ) else if !editcountt! EQU 3 (
- set "dt_secms=%%i
- )
- )
- set "datetimeformatted=!dt_yyyy!-!dt_mm!-!dt_dd!_!dt_hr!:!dt_min!:!dt_secms!"
- set "_datetime_formatted=!datetimeformatted!"
- goto :continue_datetime
- :endlocal_eof
- endlocal
- goto :eof
- :eof
- exit /B
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement