okidoki
Goto Top

Bat Internetverbindung mit vbs testen

Guten morgen,

für einen kurzen Test, ob eine Internetverbindung vorhanden ist, komme ich leider nicht weiter. Die Ausgabe des Tests soll in einer batrch weiterverarbeitet werden, dazu wurde vorher eine vbs Abfrage erzeugt. Es passiert aber leider weiter gar nicht, außer, dass eine Datei "20" erzeugt wird, in der steht: " if i then Exit Do"
PS: Vielleicht geht es auch einfacher ohne vbs?

Hier mein bisheriger Code:

 
@ECHO OFF & SETLOCAL

:: Beginn vbs
 >%temp%\msgbox.vbs ECHO Option Explicit 
>>%temp%\msgbox.vbs ECHO Dim oIE 
>>%temp%\msgbox.vbs ECHO Dim Test, i 
>>%temp%\msgbox.vbs ECHO Set oIE = CreateObject ("InternetExplorer.Application")   
>>%temp%\msgbox.vbs ECHO With oIE 
>>%temp%\msgbox.vbs ECHO   .navigate "http://google.de"   
>>%temp%\msgbox.vbs ECHO   .visible = False 
>>%temp%\msgbox.vbs ECHO   do until .readystate=4  
>>%temp%\msgbox.vbs ECHO     wscript.sleep 100 
>>%temp%\msgbox.vbs ECHO     if i > 20 then Exit Do
>>%temp%\msgbox.vbs ECHO     i = i + 1 
>>%temp%\msgbox.vbs ECHO   loop 
>>%temp%\msgbox.vbs ECHO     Test = .readystate      
>>%temp%\msgbox.vbs ECHO   .quit  'IE wird geschlossen   
>>%temp%\msgbox.vbs ECHO End with 
>>%temp%\msgbox.vbs ECHO Set oIE = nothing
:: ende vbs

:: weiter im batch
"%temp%\msgbox.vbs"  
SET /A "inet=%.readystate%"  
del "%temp%\msgbox.vbs"  

IF %inet%==4 (GOTO :gleich) else (goto :ungleich)

:gleich
echo läuft
pause
exit

:ungleich
echo läuft nicht
pause
exit

Gruß OKIDOKI

Content-Key: 181787

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

Ausgedruckt am: 28.03.2024 um 11:03 Uhr

Mitglied: bastla
bastla 12.03.2012 um 11:35:08 Uhr
Goto Top
Hallo OKIDOKI!

Eher so (ungetestet):
@ECHO OFF & SETLOCAL

:: Beginn vbs
 >%temp%\msgbox.vbs ECHO Option Explicit 
>>%temp%\msgbox.vbs ECHO Dim oIE, i 
>>%temp%\msgbox.vbs ECHO Set oIE = CreateObject ("InternetExplorer.Application")   
>>%temp%\msgbox.vbs ECHO With oIE 
>>%temp%\msgbox.vbs ECHO   .navigate "http://google.de"   
>>%temp%\msgbox.vbs ECHO   .visible = False 
>>%temp%\msgbox.vbs ECHO   do until .readystate=4  
>>%temp%\msgbox.vbs ECHO     wscript.sleep 100 
>>%temp%\msgbox.vbs ECHO     if i > 20 then Exit Do
>>%temp%\msgbox.vbs ECHO     i = i + 1 
>>%temp%\msgbox.vbs ECHO   loop 
>>%temp%\msgbox.vbs ECHO     WScript.Echo .readystate      
>>%temp%\msgbox.vbs ECHO   .quit  'IE wird geschlossen   
>>%temp%\msgbox.vbs ECHO End with 
>>%temp%\msgbox.vbs ECHO Set oIE = nothing
:: ende vbs

:: weiter im batch
set /a inet=-1
for /f %%i in ('cscript //nologo "%temp%\msgbox.vbs"') do SET /A "inet=%%i"  
del "%temp%\msgbox.vbs"  

IF %inet%==4 (GOTO :gleich) else (goto :ungleich)

:gleich
echo läuft
pause
exit

:ungleich
echo läuft nicht
pause
Grüße
bastla

[Edit] Zeile 23 korrigiert [/Edit]
Mitglied: OKIDOKI
OKIDOKI 12.03.2012 um 11:43:40 Uhr
Goto Top
Moin,

leider passiert gar nichts ...
Batch steigt gleich wieder aus!

Gruß OKIDOKI
Mitglied: bastla
bastla 12.03.2012 um 11:52:49 Uhr
Goto Top
Hallo OKIDOKI!

Sollte jetzt gehen (Änderung ist oben bereits enthalten) ...

Grüße
bastla
Mitglied: OKIDOKI
OKIDOKI 12.03.2012 um 12:08:17 Uhr
Goto Top
Hallo bastla,

Meldung kommt!
Ziehe ich allerdings einfach nur das Internetkabel raus, wird immer noch eine Verbindung gemeldet.

Hast du dafür auch noch eine Idee?

Gruß OKIDOKI
Mitglied: bastla
bastla 12.03.2012 um 12:11:14 Uhr
Goto Top
Hallo OKIDOKI!

Etwa "ping"?

Grüße
bastla
Mitglied: OKIDOKI
OKIDOKI 12.03.2012 um 12:30:40 Uhr
Goto Top
Hallo bastla,

nur wie ... ?

Gruß OKIDOKI
Mitglied: bastla
bastla 12.03.2012, aktualisiert am 18.10.2012 um 18:50:18 Uhr
Goto Top
Mitglied: OKIDOKI
OKIDOKI 12.03.2012, aktualisiert am 18.10.2012 um 18:50:18 Uhr
Goto Top
Hallo bastla,

hier noch ganz einfache einfache Lösung von Biber:
Vorhandensein einer Internetverbindung per Batch pruefen

Damit funktioniert es bei mir super.

Danke bastla und Gruß
OKIAM
Mitglied: bastla
bastla 12.03.2012 um 15:16:07 Uhr
Goto Top
Hallo OKIDOKI!

Die "Kurzfassung" in der zweiten Variante sollte es in den meisten Fällen auch tun, die "TTL"-Abfrage ist allerdings die noch sicherere Variante - und
ping www.google.de -n 1 2>nul|find "TTL">nul && goto :InetOK
ist ja auch nicht so dramatisch länger ...

Grüße
bastla
Mitglied: OKIDOKI
OKIDOKI 12.03.2012 um 16:07:50 Uhr
Goto Top
Hallo bastla,

ja, das hört sich gut und würde ich der "Sicherheit" wegen auch nehmen face-wink

GrußOKIDOKI