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

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'?
elwayisgodAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Paul TomasiConnect With a Mentor Commented:
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
 
Bill PrewCommented:
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
 
Steve KnightIT ConsultancyCommented:
or

find /c /v  "" *.txt

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

Steve
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Steve KnightConnect With a Mentor IT ConsultancyCommented:
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
 
Paul TomasiCommented:
Steve

How do I text you diectly (privately) as one EE member to another? Can we do that in EE?
0
 
elwayisgodAuthor Commented:
I ran it but all I get is:

Usage:  Rows filename (where filename is original file).
0
 
Paul TomasiCommented:
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
 
Steve KnightIT ConsultancyCommented:
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
 
Steve KnightIT ConsultancyCommented:
Thanks.  Paul's solution comprehensive as always, mine just quick simple one.

steve
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.