Avatar of E=mc2
E=mc2
Flag for Canada asked on

How can I search through a file to check to see if there are two lines that start with the same characters?

At a command line in Windows, I want to search through a specific file and if it finds 2 instances of a line beginning with the same alphacharacters, then it needs to run a a specific vbs script.

For instance, in file located at c:\info\input.txt
Searching through the file,
If there are two lines in succession which start with DTM*, then it needs to run a cscript of 2.vbs, however if it finds
only 1 line starting with DTM* on it's own, then it needs to run 1.vbs.

What command line commands can I use to accomplish this?
Thanks.
VB ScriptWindows BatchMicrosoft DOS

Avatar of undefined
Last Comment
oBdA

8/22/2022 - Mon
oBdA

This should do it; it's in test mode and will only display the csript commands; adjust lines 15 and 17 to your likings once you tested it successfully:
@echo off
setlocal enabledelayedexpansion
set InputFile=c:\info\input.txt
set FoundDouble=FALSE
set /a TestIndex = -1
for /f "tokens=1* delims=:" %%a in ('type "%InputFile%" ^| findstr.exe /n /r /i /c:"^DTM"') do (
	echo Line %%a: %%b
	if !TestIndex!==%%a (
		set FoundDouble=TRUE
	) else (
		set /a TestIndex = %%a + 1
	)
)
if %FoundDouble%==FALSE (
	ECHO cscript.exe /nologo "1.vbs"
) else (
	ECHO cscript.exe /nologo "2.vbs"
)

Open in new window

Edit: Forgot to ask: do you need to pass the file to analyze as command line argument, or can it remain hardcoded?
E=mc2

ASKER
Thank you.  It seems to search through the file well, however how can identify the path where 1.vbs and 2.vbs resides?  Currently I have both vbs files in the same folder however the vbs file is not executing.
Bill Prew

Do you only want to consider it a double if it is on the very next line, or could it be separated from the first by other lines?

~bp
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
ASKER CERTIFIED SOLUTION
oBdA

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
E=mc2

ASKER
Thanks.
The vbs files are in a different path than the script, how can I modify the cscript to show the correct path where the vbs files reside?
oBdA

Just set the path in lines 15 (for the 1 line scenario) and 17 (for the 2 lines scenario) after the "cscript.exe /nologo".