Per Batch Netzwerkadapter aus- und einschalten mit Prüfung

das punkt

Ensign
Registriert
Okt. 2007
Beiträge
248
Hallo,

meine Schulzeit ist schon ein wenig her, meine Kenntnisse über Batch-Dateien und Programmierung im Allgemeinen beschränkt und eingerostet.

Was ich bisher habe?
Zwei Batches, die diesen Adapter stumpf aus- oder anschalten.

Code:
@echo off 
set var=AUS! 
netsh interface set interface "Drahtlosnetzwerkverbindung" DISABLED
echo.Wlan ist nun %var%
pause

Was ich vorhabe?
Eine Batch-Datei, die beides verbindet - die prüft, wie der Status des Wlan-Adapters ist, ihn entsprechend (de-)aktiviert und dieses ausgibt.
Ich müsste im Grunde nur wissen, wie ich den Status des Adapters abfragen kann und dann entsprechend mit IF-Abfrage an- oder ausschalte und die Variable für die Ausgabe ändert.

Danke in Voraus,

Stey
 
Versuche mal devcon

Edit: Oh, am besten nach der 6.2 suchen, leider ist die heise-Version veraltet.
 
Zuletzt bearbeitet:
Code:
C:\Windows\system32>netsh interface show interface | findstr "VMnet1"
Aktiviert      Verbunden      Dediziert        VMware Network Adapter VMnet1
Damit kannst du dir den Adapter anzeigen lassen.
Code:
C:\Windows\system32>netsh interface show interface | findstr "VMnet1" | findstr /i "deaktiviert"
Damit kannst du überprüfen, ob es deaktiviert ist. Mit
Code:
if errorlevel 1 (
  ...
)
if errorlevel 0 (
  ...
)
überprüfst du dann den Rückgabewert.
Code:
C:\Windows\system32>if /?
Verarbeitet Ausdrücke in einer Batchdatei abhängig von Bedingungen.

IF [NOT] ERRORLEVEL Nummer Befehl
IF [NOT] Zeichenfolge1==Zeichenfolge2 Befehl
IF [NOT] EXIST Dateiname Befehl

  NOT              Befehl wird nur dann ausgeführt, wenn die Bedingung nicht
                   erfüllt ist.

  ERRORLEVEL Zahl  Bedingung ist erfüllt, wenn das zuletzt ausgeführte
                   Programm einen Code größer oder gleich der Nummer
                   zurückgibt.
Bei findstr einfach mal überprüfen, wann der errorlevel wie gesetzt ist.
 
Habs!
Kann man sicher noch vereinfachen, aber bei so wenigen Zeilen Code ...

Code:
@echo off
netsh interface show interface "Drahtlosnetzwerkverbindung" | find /i "deaktiviert">nul && set status=AUS!

if "%status%" == "AUS!" goto AN
if not "%status%" == "AUS!" goto AUS

:AUS
netsh interface set interface "Drahtlosnetzwerkverbindung" DISABLED 
set status=AUS!
goto end

:AN
netsh interface set interface "Drahtlosnetzwerkverbindung" ENABLED
set status=AN!
goto end

:end
echo.Wlan ist %status%

pause

FINDSTR hat bei mir nicht funktioniert, FIND dagegen schon. Mir hat die Abfrage aber nie einen Errorlevel außer 0 ausgespuckt, somit hab ichs so gelöst.
Was man nicht alles tut, während man n8s auf einen Anruf wartet ...

Naja, vielleicht wird es ja nochmal jemand brauchen können :)
 
Zurück
Oben