thedarklord
Goto Top

Per Batch prüfen ob UMTS USB-Dongle angeschlossen ist oder nicht

Hallo face-smile

Ich brauche eine kurze if-Abfrage, ob UMTS USB-Dongle angeschlossen ist oder nicht, stehe aber gerade total auf dem Schlauch!
Wenn ja, dann sollen ein paar Befehle ausgeführt werden, wenn nicht, soll die Batch beendet werden (goto exit z.B.)

Gruß Dark

Content-ID: 128810

Url: https://administrator.de/contentid/128810

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

Iwan
Iwan 06.11.2009 um 13:01:19 Uhr
Goto Top
hallo,

DEVCON könnte dir dabei helfen - einfach mal nach google'n
TheDarkLord
TheDarkLord 06.11.2009 um 13:24:53 Uhr
Goto Top
Hm das klingt schon mal recht interessant, damit kann man bestimmt etwas anfangen, aber so auf die schnelle fällt mir jetzt nicht ein, wie ich die Abfrage dann auswerten kann. Unter Linux shell wüsste ich, wie ich das abfrage und den Fehlercode der Abfrage dann für das weitere Programm nutzen könnte.
Aber wie geht das unter Batch xD

Es geht um mein Start-Script, welches automatisch die Internetverbindung öffnet.
Ich nutze momentan die sehr einfache Variante, dass ich rasdial ausführe und dann mit if das errorlevel abfrage.
Wenn es 1 ist, dann goto exit, ansonsten noch ein paar Befehle und dann exit.
Letztenendes funktioniert das auch, allerdings wenn ich KEIN UMTS-Dongle angeschlossen habe, nimmt er bei rasdial erstmal automatisch das Standardmodem, welches mein Laptop hat, das piept/kratzt dann einmal kurz (initialisierung des selbigen) und nach einiger Zeit erfolglosen Internetverbindungsaufbaus gibts dann goto exit.

Das würde ich halt gerne beschleunigen, dass ich nicht erst die Verbindung aufbauen lasse und beim Fehlschlag dann die Batch beende - das dauert ja recht lange - sondern ich würde eben gerne Abfragen, ob die Hardware angeschlossen ist und dann entweder goto exit oder halt rasdial und die anderen Befehle...

Gruß Dark


EDIT:
Mit Shell würde ich jetzt einfach "if ! lsusb | grep Huawei; then" benutzen und damit den Errorcode von grep auswerten, sowas in der Art muss doch auch mit Batch gehen oder?
Also USB-Geräte abfragen und nach Huawei oder so suchen...
Supaman
Supaman 06.11.2009 um 13:26:52 Uhr
Goto Top
einige UMTS dongles (z.b. t-mobile huawei) haben die treibersoftware als usb-stick mit integriert. somit könntest du einfach ein paar laufwerksbuchstaben nach bestimmten dateien absuchen.
TheDarkLord
TheDarkLord 06.11.2009 um 13:31:59 Uhr
Goto Top
Ja das habe ich mir auch schon gedacht... ich hab ja auch nen Huawei und der hat zwei USB Laufwerke integriert, eins mit Treibern und nach Installation eben noch eins, was sozusagen das Modemgerät ist...

Eigentlich recht simpel hm, ich hatte vorhin was gefunden, wie ich den Status von nem Laufwerk abfragen kann - hast Du das auf die Schnelle Parat?
Iwan
Iwan 06.11.2009 um 13:40:44 Uhr
Goto Top
hello again,

Abfrage, ob Laufwerk vorhanden:
if exist X: echo X ist vorhanden
TheDarkLord
TheDarkLord 06.11.2009 um 13:44:20 Uhr
Goto Top
Hey Supaman,

genialer Tip, vielen Dank face-smile
Manchmal sieht man vor lauter Wald die Bäume nicht mehr (oder war das anders herum? - vor lauter Bäumen den Wald? egal xD)

Ich hab jetzt einfach folgendes gemacht:
@echo off

IF NOT exist "G:\Mobile Partner" goto ENDE
rasdial ...
start thunderbird
start pidgin

:ENDE
exit

Funktioniert super!

Danke nochmal an alle, vor allem für die super schnelle Antwort...

Gruß Dark
TheDarkLord
TheDarkLord 01.12.2009 um 14:05:17 Uhr
Goto Top
EDIT: Das hier hat sich nun durch meinen nächsten Post erledigt face-smile
TheDarkLord
TheDarkLord 01.12.2009 um 15:44:42 Uhr
Goto Top
Ich hatte jetzt etwas Zeit und hab es mittels Iwans Hinweis auf devcon hinbekommen! Danke dafür und danke an alle face-smile

Für alle, die ein Startscript fürs Dialup Internet haben wollen, das auch nur arbeitet, wenn Dialup verfügbar ist:
Devcon herunteraden und die exe in system32 schieben, dann folgende Batch-Datei erstellen und eine Verknüpfung dazu in den Autostartordner - die Verknüpfung dann mittels Rechtsklick Eigenschaften minimiert starten lassen.

@echo off

REM 3 Sekunden Pause, da das Modem beim Systemstart erst initialisiert werden muss
ping localhost -n 3 >NUL

REM "USB\VID_12D1&PID_1003&MI_00" muss mit der HID des Modems ausgetauscht werden.
REM regedit: HKLM-SYSTEM-CurrentControlSet-Enum-USB
REM Da dann durch die VIDs klicken (auf die jeweiligen Unterschlüssel, bis man den findet,
REM wo etwas mit Modem drin steht, z.B. DeviceDesk "HUAWEI Mobile Connect - 3G Modem".
REM Alternativ den Schlüssel USB öffnen und dann mit Strg+F nach "Modem" suchen

REM Die Ausgabe von devcon find wird in einer temporäre Datei geleitet.
devcon find "USB\VID_12D1&PID_1003&MI_00" >> %temp%\modemabfrage.tmp

REM Der Inhalt der Temp-Datei wird in die Variable eingelesen
for /f "delims== tokens=1" %%i in (%temp%\modemabfrage.tmp) do @set modemabfrage=%%i

REM Die Ausgabe des devcon-Befehls wird verglichen
IF /I "%modemabfrage%"=="No matching devices found." goto ENDE

REM Die temporäre Datei wird gelöscht
del %temp%\modemabfrage.tmp

REM Die Internet-Verbindung wird aufgebaut.
REM "Internet" mit dem Namen der DFÜ-Verbindung austauschen.
rasdial Internet

REM Vereinzelt kommt es vor, dass das UMTS-Netz überlastet ist und ein Verbindungsaufbau fehlschlägt.
REM In diesem Fall wird man mit einem "Fehler-Fenster" darüber benachrichtigt.
IF errorlevel 1 goto FEHLER

REM Ist der Verbindungsaufbau erfolgreich, können noch weitere Programme gestartet werden,
REM die immer benutzt werden, wenn man online geht.
start thunderbird
start pidgin

REM Da im Falle einer negativen Abfrage gleich zum Ende gesprungen wird, greift der Befehl zum
REM löschen der temporären Datei weiter oben nicht und muss hier nochmal wiederholt werden.
:ENDE
del %temp%\modemabfrage.tmp
exit

REM Die Batch startet ein neues cmd-Fenster mit anderer Farbgebung und gibt einen Hinweistext aus.
REM Da dafür ein "Einzeiler" gebraucht wird, ist der Befehl mit & verkettet.
:FEHLER
start cmd /C "color f0 &echo.& echo Fehler beim Verbindungsaufbau!& echo ------------------------------ & echo.& echo Bitte Verbindung manuell aufbauen:& echo Start - Einstellungen - Netzwerkverbindungen - Internet& echo.& echo Geht das auch nicht, den weissen Stecker rausziehen,& echo wieder reinstecken und 10 Sekunden warten.& echo Dann erneut versuchen (s.o.)& echo.& pause"