Link to home
Start Free TrialLog in
Avatar of E=mc2
E=mc2Flag 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.
Avatar of oBdA
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?
Avatar of 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.
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
ASKER CERTIFIED SOLUTION
Avatar of oBdA
oBdA

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of 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?
Just set the path in lines 15 (for the 1 line scenario) and 17 (for the 2 lines scenario) after the "cscript.exe /nologo".