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

Printed on: April 23, 2024 at 10:04 o'clock

Member: bastla
bastla Mar 12, 2012 at 10:35:08 (UTC)
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]
Member: OKIDOKI
OKIDOKI Mar 12, 2012 at 10:43:40 (UTC)
Goto Top
Moin,

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

Gruß OKIDOKI
Member: bastla
bastla Mar 12, 2012 at 10:52:49 (UTC)
Goto Top
Hallo OKIDOKI!

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

Grüße
bastla
Member: OKIDOKI
OKIDOKI Mar 12, 2012 at 11:08:17 (UTC)
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
Member: bastla
bastla Mar 12, 2012 at 11:11:14 (UTC)
Goto Top
Hallo OKIDOKI!

Etwa "ping"?

Grüße
bastla
Member: OKIDOKI
OKIDOKI Mar 12, 2012 at 11:30:40 (UTC)
Goto Top
Hallo bastla,

nur wie ... ?

Gruß OKIDOKI
Member: bastla
bastla Mar 12, 2012, updated at Oct 18, 2012 at 16:50:18 (UTC)
Goto Top
Member: OKIDOKI
OKIDOKI Mar 12, 2012, updated at Oct 18, 2012 at 16:50:18 (UTC)
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
Member: bastla
bastla Mar 12, 2012 at 14:16:07 (UTC)
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
Member: OKIDOKI
OKIDOKI Mar 12, 2012 at 15:07:50 (UTC)
Goto Top
Hallo bastla,

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

GrußOKIDOKI