Solved

VB script to count number of rows in text file(s)

Posted on 2012-03-29
9
892 Views
Last Modified: 2012-03-29
Hi,

I have a directory that has a bunch of txt files.  They were derived from a much larger file.  I need to make sure the number of rows in all the files match exactly the number of rows in the original.  Just to make sure the original was separated correctly.  I would compare sizes except in the script to extract the multiple files, the " were removed thus it's not a valid comparison...  

Or maybe a script to just remove the " from a file named 'File.txt' and the result is 'File2.txt'?
0
Comment
Question by:elwayisgod
9 Comments
 
LVL 53

Expert Comment

by:Bill Prew
ID: 37783327
In dos batch you can use The following to get a line count of a file, and then compare the two.

FIND /C /V "" <file1.txt

~bp
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 37783385
or

find /c /v  "" *.txt

to report back the no. of lines in each .txt file in a dir.

Steve
0
 
LVL 11

Accepted Solution

by:
paultomasi earned 250 total points
ID: 37783605
Nice one bill...

elwayisgod

Please run this batch file to process all your text files:

NOTE: Copy & Paste the code into Notepad and save it as a .BAT file in the folder where your text files reside.
@echo off

if "%*"=="" (
  echo Usage: %~n0 filename ^(where filename is original file^).
  exit /b 1
)

if not exist "%*" (
  echo Error: Bad path or filename.
  exit /b 1
)

set logfile=%~nx0.log
del "%logfile%" 2>nul

for /f %%a in ('find /c /v ""^<"%~f1"') do set rows=%%a

set filecount=0
set count=0

for %%a in (*.txt) do (
  set /a filecount+=1
  if not "%%~f1"=="%%~fa" (
    for /f %%b in ('find /c /v ""^<"%%~fa"') do (
      if %%b neq %rows% (
        set /a count+=1
        echo %%a %%b rows
        echo %%a ^(%%b rows^)>>%logfile%
      )
    )
  )
)

echo.
echo Original file: %~f1
echo Number of rows: %rows%
echo.
echo %filecount% files checked.
echo %count% files with unmatching number of rows.
echo.
if %count% gtr 0 start Notepad %logfile%
exit /b 0

Open in new window

NOTE: Run the batch file speciying the name of the original file as a parameter (may include the full path if the file is located elsewhere).
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 43

Assisted Solution

by:Steve Knight
Steve Knight earned 250 total points
ID: 37783806
Or a simpler way to get the count of all text files in one dir:

@echo off
setlocal enabledelayedexpansion
cd /d "c:\yourdir"

set count=0
for /f "tokens=2 delims=:" %%a in ('find /c /v  "" *.txt') do set /a count=count+%%a

echo Total count: %count%
0
 
LVL 11

Expert Comment

by:paultomasi
ID: 37784506
Steve

How do I text you diectly (privately) as one EE member to another? Can we do that in EE?
0
 

Author Comment

by:elwayisgod
ID: 37784642
I ran it but all I get is:

Usage:  Rows filename (where filename is original file).
0
 
LVL 11

Expert Comment

by:paultomasi
ID: 37784671
Yep...

Run it from say, DOS, like this:

    rows filename.txt

where filename.txt is the original text file which the other text files need to be matched against.
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 37784851
Paul - don't know if you can but mobile / email / Skype details in my details if you follow profile or look at http://scripts.dragon-it.co.uk/ ?
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 37785819
Thanks.  Paul's solution comprehensive as always, mine just quick simple one.

steve
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Recently, I got a requirement to zip all files individually with batch file script in Windows OS. I don't know much about scripting, but I searched Google and found a lot of examples and websites to complete my task. Finally, I was ab…
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question