Simpler Navigation for Servers and Operating Systems
Completed: a much simpler Servers and Operating Systems section of the Community. We combined many of the older boards, so you won't have to click through so many levels to get at the information you need. Check the consolidated boards here as many sub-forums are now single boards.
Operating System - Microsoft
cancel
Showing results for 
Search instead for 
Did you mean: 

DOS batch procedure

Jose Mosquera
Honored Contributor

DOS batch procedure

Hi guys,

I need help to script this in DOS batch syntax. First I need obtain any registry data entry into the root key HKEY_LOCAL_MACHINE where the string 2.34.1.32 is present:

C:\>scanreg -s 2.34.1.32 -d lm|find "Data"
Data : "2.13.0.20,2.12.0.20,2.34.1.32"
Data : "2.34.1.32,2.34.1.54"
Data : "2.34.1.32"

So I need catch on-the-fly this output and extract second field separated by ":" and then execute to each string line the following command:
regfind -r "2.13.0.20,2.12.0.20"

In other words, the follwing executions will be done:
regedit "2.13.0.20,2.12.0.20,2.34.1.32" -r "2.13.0.20,2.12.0.20"
regedit "2.34.1.32,2.34.1.54" -r "2.13.0.20,2.12.0.20"
regedit "2.34.1.32" -r "2.13.0.20,2.12.0.20"

Rgds.
2 REPLIES
Ivan Ferreira
Honored Contributor

Re: DOS batch procedure

For this kind of jobs, as you are an HP-UX expert, probably you will find unxtools very usefull:

http://unxutils.sourceforge.net/

They work very whell.
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Robert Gralak
Occasional Visitor

Re: DOS batch procedure

Hi Jose!

I think it will be a good, one-line solution:

reg_srch.bat

@FOR /F "usebackq tokens=2* delims=:" %%a IN ('scanreg -s 2.34.1.32 -d lm|find "Data"') do regedit %%a -r "2.13.0.20,2.12.0.20"

For searching any other strings, ie.:

reg_srch "2.13.0.20,2.12.0.20" 2.34.1.32

@FOR /F "usebackq tokens=2* delims=:" %%a IN ('scanreg -s %2 -d lm|find "Data"') do regedit %%a -r %1

Best regards