*.reg datei nach einem Wort durchsuchen

inAusbildung

Herzlich willkommen!
Hallo zusammen

Ich habe schon einige Batch dateien geschrieben und euer forum war mir immer eine gute Hilfe, doch bei meinem aktuellen Problem hab ich mit googel und umbiegen alleine mein skript nicht richtig zum laufen gebracht und hoffe ihr könnt mir helfen.

Mein aktuelles skript ist zum Einstellen der IPconfig des PC's gedacht, so dass man sich nicht immer durch diese Windows fenster klicken muss. Mein aktuelles Skript:

Code:
@echo off
echo Wollen sie DHCP(1) einschalten oder die Netzwerkeinstellungen Manuel(2) konfiguieren?
echo DHCP: 1
echo Manuel: 2

set /p dhcp=

if %dhcp%==1 (
GOTO dhcp )
if %dhcp%==2 (
GOTO manuel )

	:dhcp
	echo Wie heisst Lan-Verbindung? Fals sie "standard" eingeben wird der Standardname "Lan-Verbindung" verwendet...
	set /p Lan-Verbindung=

	REM ###############################
	REM # IP & Subnetmask & DefaultGW #
	REM ###############################	
	
	if %Lan-Verbindung%==standard (
	netsh interface ip set address name="LAN-Verbindung" source=dhcp
	) else ( 
	netsh interface ip set address name="%LAN-Verbindung%" source=dhcp
	)

	REM ###############################
	REM #          DNS-Server         #
	REM ###############################

	if %Lan-Verbindung%==standard (
	netsh interface ip set dns name="LAN-Verbindung" source=dhcp register=both
	) else (
	netsh interface ip set dns name="%LAN-Verbindung%" source=dhcp register=both
	)
	ipconfig /renew
	ipconfig /all
pause
exit


	:manuel
	set /p ip=IP-Adresse?
	set /p subnetmask=Subnetzmask?
	set /p defaultgw=Standard-Gateway?
	set /p dns=DNS-Server?

	echo Wie heisst Lan-Verbindung? Fals sie "standard" eingeben wird der Standardname "Lan-Verbindung" verwendet...
	set /p Lan-Verbindung=

	REM ###############################
	REM # IP & Subnetmask & DefaultGW #
	REM ###############################	

	if %Lan-Verbindung%==standard (
	netsh interface ip set address name="LAN-Verbindung" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 
	) else ( 
	netsh interface ip set address name="%LAN-Verbindung%" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 
	)

	REM ###############################
	REM #          DNS-Server         #
	REM ###############################

	if %Lan-Verbindung%==standard (
	netsh interface ip set dns name="LAN-Verbindung" source=static addr=%dns% register=both
	) else (
	netsh interface ip set dns name="%LAN-Verbindung%" source=static addr=%dns% register=both
	)
	ipconfig /all
pause
exit

Nun denn wie man sieht läuft es an sich, nun was mir aber gar nicht gefällt, ist dass man seinen LAN-Adapter namen manuell eingeben muss wenn er nicht den "standard-namen" hat, somit habe ich in der Registry den Schlüssel ausfindig gemacht wo die Adapter namen alle sicher mal vorkommen, diese habe ich als ip.reg abgespeichert. Was ich jetzt gern hätte ist, dass das skript die reg durchsucht nach z.b. "Local area Connection" und mir einen rückgaewert liefert in die variable %return% ob dieses Wort vorhanden ist oder nicht. Die ganzen If else verknüpfungen zu den verschiedenen möglichkeiten der Adaptere, kann ich dann selbst noch machen.

(Folgendes hab ich gefunden und umgebastelt aber funktioniert leider nicht :/ :
Code:
reg export HKLM\SYSTEM\ControlSet001\Control\Network\ ip.reg

@for /f "Tokens=3,*" %%a in ('find /I /C "LAN-Verbindung" "%USERPROFILE%\ip.reg"^') do @set T=%%a

@If "%T%" LSS "1" goto Exit

@goto JA

:Exit
@Echo.
@Echo Text wurde nicht gefunden
@Echo.
@Pause
exit

:JA
@echo.
@echo Der Text wurde %T% mal gefunden
@echo.
@echo juhuuu,der Test geht
@echo.
@Pause
)

Danke für eure Hilfe
Gruss ein Lehrling ins Ausbildung :p
 
Code:
netsh interface ip show config > "c:\bla.txt"
findstr "Konfiguration der Schnittstelle" > c:\bla.txt

In der c:\bla.txt steht der aktuelle Name der Lanverbindung, die aktiv ist. Nun den "Wert dahinter auslesen.
 
Danke Jim

Nun wie kann ich denn nun z.b. das File nach Lan-Verbindung durchsuchen und fals vorahanden in eine Variable übergeben? Ich möchte das bath skript einfach sprach unabhängig lassen und nicht z.b. nach "Konfiguration der Schnittstelle" suchen un das dahinter in eine Variable übernehmen...
 
Habs jetzt auf ziemlich primitive weise gelöst... Leider hats irgendwo noch einen kleinen Fehler ich korrigier ihn sobald ich ihn finde ansonsten findet ihr ihn vielleicht ja...

Fehler gefunden und korrigiert skript läuft nun... /closed

Code:
@echo off
set adapter1=1
set adapter2=2
set adapter3=3
set adapter4=4
set adapter5=5
set adapter6=6

ipconfig /all > c:\Windows\Temp\ip.txt

:Search1
for /f "Tokens=3,*" %%a in ('find /I /C "LAN-Verbindung" c:\Windows\Temp\ip.txt') do @set T=%%a
If "%T%" LSS "1" (
Goto search2
) else (
goto JA1 
)

:JA1
echo.
echo Netzwerk adapter gefunden
echo.
set adapter1=LAN-Verbindung
Goto search2

:Search2
for /f "Tokens=3,*" %%a in ('find /I /C "LAN-Verbindung 1" c:\Windows\Temp\ip.txt') do @set T=%%a
If "%T%" LSS "1" (
Goto search3
) else (
@goto JA2 
)

:JA2
echo.
echo Netzwerk adapter gefunden
echo.
set adapter2=LAN-Verbindung1
Goto search3

:Search3
for /f "Tokens=3,*" %%a in ('find /I /C "LAN-Verbindung 2" c:\Windows\Temp\ip.txt') do @set T=%%a
If "%T%" LSS "1" (
Goto search4
) else (
goto JA3 
)

:JA3
echo.
echo Netzwerk adapter gefunden
echo.
set adapter3=LAN-Verbindung2
Goto search4

:Search4
for /f "Tokens=3,*" %%a in ('find /I /C "Local Area Connection" c:\Windows\Temp\ip.txt') do @set T=%%a
If "%T%" LSS "1" (
Goto search5
) else (
goto JA4 
)

:JA4
echo.
echo Netzwerk adapter gefunden
echo.
set adapter4=LocalAreaConnection
Goto search5

:Search5
for /f "Tokens=3,*" %%a in ('find /I /C "Local Area Connection 1" c:\Windows\Temp\ip.txt') do @set T=%%a
If "%T%" LSS "1" (
Goto search6
) else (
goto JA5 
)

:JA5
echo.
echo Netzwerk adapter gefunden
echo.
set adapter5=LocalAreaConnection1
Goto search6

:Search6
for /f "Tokens=3,*" %%a in ('find /I /C "Local Area Connection 2" c:\Windows\Temp\ip.txt') do @set T=%%a
If "%T%" LSS "1" (
Goto IP
) else (
goto JA6 
)

:JA6
echo.
echo Netzwerk adapter gefunden
echo.
set adapter6=LocalAreaConnection2
Goto IP

:IP
echo Wollen sie DHCP(1) einschalten oder die Netzwerkeinstellungen Manuel(2) konfiguieren?
echo DHCP: 1
echo Manuel: 2

set /p dhcp=

if %dhcp%==1 (
GOTO dhcp )
if %dhcp%==2 (
GOTO manuel )

	:dhcp
	REM ###############################
	REM #           Adapter           #
	REM ###############################
	echo.	
	echo Welcher Adapter? 1-6
	echo.
	if %adapter1%==LAN-Verbindung (
	echo Adapter: LAN-Verbindung: 1 )
	if %adapter2%==LAN-Verbindung1 (
	echo Adapter: LAN-Verbindung: 2 )
	if %adapter3%==LAN-Verbindung2 (
	echo Adapter: LAN-Verbindung: 3 )
	if %adapter4%==LocalAreaConnection (
	echo Adapter: LAN-Verbindung: 4 )
	if %adapter5%==LocalAreaConnection1 (
	echo Adapter: LAN-Verbindung: 5 )
	if %adapter6%==LocalAreaConnection2 (
	echo Adapter: LAN-Verbindung: 6 )
	set /p Lan-Verbindung=


	REM ###############################
	REM # IP & Subnetmask & DefaultGW #
	REM ###############################	
	
	if %Lan-Verbindung%==1 (
	netsh interface ip set address name="LAN-Verbindung" source=dhcp )
	if %Lan-Verbindung%==2 (
	netsh interface ip set address name="LAN-Verbindung 1" source=dhcp )
	if %Lan-Verbindung%==3 (
	netsh interface ip set address name="LAN-Verbindung 2" source=dhcp )
	if %Lan-Verbindung%==4 (
	netsh interface ip set address name="Local Area Connection" source=dhcp )
	if %Lan-Verbindung%==5 (
	netsh interface ip set address name="Local Area Connection 1" source=dhcp )
	if %Lan-Verbindung%==6 (
	netsh interface ip set address name="Local Area Connection 2" source=dhcp )

	REM ###############################
	REM #          DNS-Server         #
	REM ###############################



	if %Lan-Verbindung%==1 (
	netsh interface ip set dns name="LAN-Verbindung" source=dhcp register=both )
	if %Lan-Verbindung%==2 (
	netsh interface ip set dns name="LAN-Verbindung 1" source=dhcp register=both )
	if %Lan-Verbindung%==3 (
	netsh interface ip set dns name="LAN-Verbindung 2" source=dhcp register=both )
	if %Lan-Verbindung%==4 (
	netsh interface ip set dns name="Local Area Connection" source=dhcp register=both )
	if %Lan-Verbindung%==5 (
	netsh interface ip set dns name="Local Area Connection 1" source=dhcp register=both )
	if %Lan-Verbindung%==6 (
	netsh interface ip set dns name="Local Area Connection 2" source=dhcp register=both )

	ipconfig /renew
	ipconfig /all
pause
exit


	:manuel
	set /p ip=IP-Adresse?
	set /p subnetmask=Subnetzmask?
	set /p defaultgw=Standard-Gateway?
	set /p dns=DNS-Server?

	REM ###############################
	REM #           Adapter           #
	REM ###############################
	echo.	
	echo Welcher Adapter? 1-6
	echo.
	if %adapter1%==LAN-Verbindung (
	echo Adapter: LAN-Verbindung: 1 )
	if %adapter2%==LAN-Verbindung1 (
	echo Adapter: LAN-Verbindung: 2 )
	if %adapter3%==LAN-Verbindung2 (
	echo Adapter: LAN-Verbindung: 3 )
	if %adapter4%==LocalAreaConnection (
	echo Adapter: LAN-Verbindung: 4 )
	if %adapter5%==LocalAreaConnection1 (
	echo Adapter: LAN-Verbindung: 5 )
	if %adapter6%==LocalAreaConnection2 (
	echo Adapter: LAN-Verbindung: 6 )
	set /p Lan-Verbindung=

	REM ###############################
	REM # IP & Subnetmask & DefaultGW #
	REM ###############################	

	if %Lan-Verbindung%==1 (
	netsh interface ip set address name="LAN-Verbindung" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 )
	if %Lan-Verbindung%==2 (
	netsh interface ip set address name="LAN-Verbindung 1" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 )
	if %Lan-Verbindung%==3 (
	netsh interface ip set address name="LAN-Verbindung 2" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 )
	if %Lan-Verbindung%==4 (
	netsh interface ip set address name="Local Area Connection" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 )
	if %Lan-Verbindung%==5 (
	netsh interface ip set address name="Local Area Connection 1" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 )
	if %Lan-Verbindung%==6 (
	netsh interface ip set address name="Local Area Connection 2" source=static addr=%ip% mask=%subnetmask% gateway=%defaultgw% gwmetric=1 )


	REM ###############################
	REM #          DNS-Server         #
	REM ###############################

	if %Lan-Verbindung%==1 (
	netsh interface ip set dns name="LAN-Verbindung" source=static addr=%dns% register=both )
	if %Lan-Verbindung%==2 (
	netsh interface ip set dns name="LAN-Verbindung 1" source=static addr=%dns% register=both )
	if %Lan-Verbindung%==3 (
	netsh interface ip set dns name="LAN-Verbindung 2" source=static addr=%dns% register=both )
	if %Lan-Verbindung%==4 (
	netsh interface ip set dns name="Local Area Connection" source=static addr=%dns% register=both )
	if %Lan-Verbindung%==5 (
	netsh interface ip set dns name="Local Area Connection 1 source=static addr=%dns% register=both )
	if %Lan-Verbindung%==6 (
	netsh interface ip set dns name="Local Area Connection 2" source=static addr=%dns% register=both )

	ipconfig /all
pause
exit
 
Zuletzt bearbeitet:
etwas kürzer, aber auch nicht besonders schön. :D

einfach am Anfang deiner Batchdatei das einfügen, schon hast du den Namen der Lanverbindung die aktuell ist in der Variable %test%

Code:
@netsh interface ip show config > "test.txt"

@for /f "tokens=1,* delims=:" %%i in ('findstr /n  $ test.txt') do @(
        for /L %%a in (0,1,2) do @if %%i==%%a @set var1=%%~j

)
@set "var2=%var1:~34%"

@set "test=%var2:~0,-2%"

@del test.txt
 
Zuletzt bearbeitet:
Oben