Advertisement
AntyalTennyson

main10-01-example.bat (for with dir, ' quotes & NO " quotes)

Feb 10th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 5.20 KB | None | 0 0
  1. @echo off
  2.  
  3.  
  4. :sub_main_routine
  5. setlocal enabledelayedexpansion
  6. set "var1=val"
  7. set "dirpath=%~dp0"
  8.    
  9. call :sub_datetime_formatted _datetime_formatted
  10. :continue_datetime
  11. set "datetimeformatted=!_datetime_formatted!"
  12.        
  13. set /A "filecount=-1"
  14. for /F %%i in ('dir /b C:\files\Spreadsheets\TestFiles\ExportedData*.csv') do (
  15.     set "var1=%%i"
  16.     set /A "filecount=filecount+1"
  17.     set "filematches[!filecount!]=!var1!"
  18. )
  19. for /L %%i in (0,1,!filecount!) do (
  20.     set "filenameis=!filematches[%%i]!"
  21.     set "logfilefqp=!dirpath!Logfiles\test10-00.log"
  22.    
  23.    
  24.    
  25.     set "fileformatcheck=!filenameis:~12,1!"
  26.     echo fileformatcheck="!fileformatcheck!"
  27.     if not [!fileformatcheck!] == [-] (
  28.         echo FOLLOW_LOOP goto :skip_this_file n
  29.         goto :skip_this_file
  30.     )
  31.     set "file_mm=!filenameis:~10,2!"
  32.     set "file_dd=!filenameis:~13,2!"
  33.     set "file_yy=!filenameis:~16,2!"
  34.     set "to_yyyy=!datetimeformatted:~0,2!"
  35.     set "file_yyyy=!to_yyyy!!file_yy!"
  36.    
  37.    
  38.     set "fdateafter=!file_yyyy!-!file_mm!-!file_dd!"
  39.     set "filenamefixed=ExportedData!fdateafter!.csv"
  40.    
  41.    
  42.     rem IF DUPLICATE(S), DO INCREMENTED RENAMES
  43.     set /A "haveduplicates=0"
  44.     set /A "countduplicates=0"
  45.     set "duplicatesmsg=duplicatesY!countduplicates!"
  46.     for /F %%r in ('dir /b C:\files\Spreadsheets\TestFiles\!filenamefixed!') do set "dupcheck=%%r"
  47.     if [!dupcheck!] NEQ [] (
  48.         set /A "haveduplicates=1"
  49.         set /A "countduplicates=countduplicates+1"
  50.         :dupcheck_loop
  51.         set /A "format_duplicatecount_return=1"
  52.         echo FOLLOW_LOOP goto :format_duplicatecount !countduplicates!
  53.         goto :format_duplicatecount
  54.         :continue_dupcheck_loop
  55.         set "filenamefixedwithdup=ExportedData!fdateafter!-v!duplicatecount!.csv"
  56.         for /F %%r in ('dir /b C:\files\Spreadsheets\TestFiles\!filenamefixedwithdup!') do set "dupcheckloop=%%r"
  57.         if [!dupcheckloop!] NEQ [] (
  58.             set /A "countduplicates=countduplicates+1"
  59.             echo FOLLOW_LOOP goto :dupcheck_loop !countduplicates!
  60.             goto :dupcheck_loop
  61.         )
  62.         set "filenamefixed=!filenamefixedwithdup!"
  63.     )
  64.        
  65.        
  66.    
  67.    
  68.     rem ren "C:\files\Spreadsheets\TestFiles\!filenameis!" !filenamefixed!
  69.     set "filenameis=!filenamefixed!"
  70.    
  71.    
  72.     set /A "confirmorig=1"
  73.     set /A "confirmren=1"
  74.     for /F %%f in ('dir /b C:\files\Spreadsheets\TestFiles\!filenameis!') do set "confirmorigf=%%f"
  75.     for /F %%r in ('dir /b C:\files\Spreadsheets\TestFiles\!filenamefixed!') do set "confirmr=%%r"
  76.     if [!confirmorigf!] NEQ [] (
  77.         set /A "confirmorig=confirmorigf"
  78.     )
  79.     if !confirmorig! EQU 1 (
  80.         set "origstatus=REMOVED"
  81.         if [!confirmr!] EQU [] (
  82.             set /A "confirmren=confirmr"
  83.         )
  84.         if !confirmren! EQU 1 (
  85.             set "renstatus=duplicateNO,RENAMED"
  86.         ) else (
  87.             set "renstatus=duplicateNO,NOTrenamed"
  88.         )
  89.     ) else (
  90.         set "origstatus=NOTremoved"
  91.         if [!confirmr!] EQU [] (
  92.             set /A "confirmren=confirmr"
  93.         )
  94.         if !confirmren! EQU 1 (
  95.             set /A "countduplicates=countduplicates+1"
  96.            
  97.             set /A "format_duplicatecount_return=2"
  98.             echo FOLLOW_LOOP goto :format_duplicatecount !countduplicates!
  99.             goto :format_duplicatecount
  100.             :continue_confirmren
  101.            
  102.             set "duplicatesmsg=duplicatesY!duplicatecount!"
  103.             set /A "haveduplicates=1"
  104.             set "renstatus=!duplicatesmsg!,NOTrenamed"
  105.         ) else (
  106.             set "renstatus=duplicateNO,NOTrenamed"
  107.         )
  108.     )
  109.    
  110.    
  111.    
  112.     rem del /Q "C:\files\Spreadsheets\TestFiles\!filenameis!"
  113.     set /A "confirmdel=1"
  114.     for /F %%f in ('dir /b C:\files\Spreadsheets\TestFiles\!filenameis!') do set "confirmf=%%f"
  115.     if [!confirmf!] NEQ [] (
  116.         set /A "confirmdel=confirmf"
  117.     )
  118.     echo !confirmdel! "!confirmf!"
  119.     if !confirmdel! EQU 1 (
  120.         set "delstatus=DELETED"
  121.     ) else (
  122.         set "delstatus=NOTdeleted"
  123.     )
  124.     rem echo !datetimeformatted!,C:\files\Spreadsheets\TestFiles\!filenameis!,!origstatus!,!renstatus!,!delstatus! >> "!logfilefqp!"
  125.     :skip_this_file
  126. )
  127.    
  128.    
  129.  
  130. goto :endlocal_eof
  131.  
  132. :format_duplicatecount
  133. if !countduplicates! LSS 100 (
  134.     set "duplicatecount=!countduplicates!"
  135.     if !countduplicates! LSS 10 (
  136.         set "duplicatecount=0!duplicatecount!"
  137.     )
  138.     set "duplicatecount=0!duplicatecount!"
  139. )
  140. if !format_duplicatecount_return! EQU 1 (
  141.     echo FOLLOW_LOOP goto :continue_dupcheck_loop !countduplicates!
  142.     goto :continue_dupcheck_loop
  143. ) else if !format_duplicatecount_return! EQU 2 (
  144.     echo FOLLOW_LOOP goto :continue_confirmren !countduplicates!
  145.     goto :continue_confirmren
  146. )
  147.    
  148.    
  149.  
  150. goto :endlocal_eof
  151.  
  152. :sub_datetime_formatted
  153. set "rawdate=%DATE%"
  154. set "rawtime=%TIME%"
  155. set "editdate=!rawdate!"
  156. set "edittime=!rawtime!"
  157. set "editdate=!editdate:/=,!"
  158. set "editdate=!editdate: =,!"
  159. set "edittime=!edittime::=,!"
  160. set "edittime=!edittime: =0!"
  161. set /A "editcountd=0"
  162. for %%i in (!editdate!) do (
  163.     set /A "editcountd=editcountd+1"
  164.     if !editcountd! EQU 1 (
  165.         set "dt_dow=%%i
  166.     ) else if !editcountd! EQU 2 (
  167.         set "dt_mm=%%i
  168.     ) else if !editcountd! EQU 3 (
  169.         set "dt_dd=%%i
  170.     ) else if !editcountd! EQU 4 (
  171.         set "dt_yyyy=%%i
  172.     )
  173. )
  174. set /A "editcountt=0"
  175. for %%i in (!edittime!) do (
  176.     set /A "editcountt=editcountt+1"
  177.     if !editcountt! EQU 1 (
  178.         set "dt_hr=%%i
  179.     ) else if !editcountt! EQU 2 (
  180.         set "dt_min=%%i
  181.     ) else if !editcountt! EQU 3 (
  182.         set "dt_secms=%%i
  183.     )
  184. )
  185. set "datetimeformatted=!dt_yyyy!-!dt_mm!-!dt_dd!_!dt_hr!:!dt_min!:!dt_secms!"
  186. set "_datetime_formatted=!datetimeformatted!"
  187. goto :continue_datetime
  188.  
  189.  
  190. :endlocal_eof
  191. endlocal
  192.  
  193. goto :eof
  194. :eof
  195. exit /B
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement