简体   繁体   中英

Output duplicates records in batch script

Trying to output filename, record count, sort csv on column L and displace the first record fullname and last record fullname for each csv in directory.

I am trying to print out an array that contain zip, first name,last name. The logic of my script is to read in the specific column for source csv. I am able to output the file name and record count. However I can seen to get the correct first record fullname and last record fullname. As you can see from my sample data there is duplication.

Sample:

  Filename: Test1.csv Record Count: 988 First Record Name: 12025, Jeff, Meacham Last Record Name: 14905, Jazzlynn, Doe Filename: Test2.csv Record Count: 580 First Record Name: 12010, Jim, Palmerino Last Record Name: 14905, Jazzlynn, Doe Filename: Test3.csv Record Count: 522 First Record Name: 12010, Jim, Palmerino Last Record Name: 14905, Joseph, Panosian Filename: Test4.csv Record Count: 555 First Record Name: 12010, jim, Palmerino Last Record Name: 14905, Joseph, Thurber 
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

IF EXIST result3.txt DEL /F result3.txt


for %%f in (*csv) do (
   set CurrentFile=%%f
   set /a NumLines=0


     for /f %%j in ('Find "" /v /c ^< !CurrentFile!') Do (
       Set /a NumLines=%%j
    )



    for /F "tokens=1-12 delims=," %%a in (!CurrentFile!) do (

        if not defined counter set counter=0
        set /a counter+=1
        set line[%%~lcounter]=%%l, %%d, %%f

    )

    (set row=%~1) & (set last=%~1)
    for /F "tokens=1-2 delims==" %%a in ('set line[') do (

    if not defined row (set row=%%b ) else (set last=%%b )
        set row=!row:"=!
        set last=!last:"=!  
         )

       echo.    
       echo.   Filename: !CurrentFile!
           echo.   Record Count: !NumLines!
           echo.   First Record Name: !row!
           echo.   Last Record Name: !last!

    ) >> result3.txt



) 

ENDLOCAL
  Filename: Test1.csv Record Count: 988 First Record Name: 12025, Jeff, Meacham Last Record Name: 14905, Jazzlynn, Doe Filename: Test2.csv Record Count: 580 First Record Name: 12010, Jim, Palmerino Last Record Name: 14905, Matthew Smalles Filename: Test3.csv Record Count: 522 First Record Name: 12010, Joshua Long Last Record Name: 14905, Joseph, Panosian Filename: Test4.csv Record Count: 555 First Record Name: 12010, Hillary Koller Last Record Name: 14905, Joseph, Thurber 

I solved the issue by adding to current file name to the array name. Thus creating a new array each time. ('set line_!CurrentFile![')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM