charmeur
Goto Top

Batch wert vorhanden?

Hallo ihr

ich habe da eine Frage und zwar habe ich mir eine Batch zusammengebastelt in dem meine Netzlaufwerke beim Start geprüft werden ob sie da sind oder nicht jetzt müsste ich allerdings noch eine art auswertung haben wenn einer der Netzwerke nicht erreihbar ist und zwar habe ich die Abfrage so realisiert

Ping %VAR3% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (echo %VAR3% o.k.) ELSE (echo Verbindung test1 nok 
echo.)


Ping  %VAR2% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (echo Karsau o.k.) ELSE (echo test2 nok
echo.)

das geht auch so weit nun möchte ich aber eine Verbindung aufbauen wenn einer der beiden ein "nok"  zurückbringt   
meine Frage nun wie schaffe ich es das in der Batch ein GOTO ausgeführt wird wenn ein "nok"   

ich selbts habe irgend wie so was in gedacht aber leider gehts nicht 

find "nok" > goto XY  



wäre klasse wenn jemand mir helfen könnte

Content-ID: 160794

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

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

Skyemugen
Skyemugen 15.02.2011 um 11:10:24 Uhr
Goto Top
Aloha,

wenn ich das richtig verstehe, willst du so etwas realisieren? (Oder wo wolltest du jetzt nok finden?)

Ping %VAR3% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (echo %VAR3% o.k.) ELSE (echo Verbindung test1 nok && goto :XY)

:XY
echo genau da willst du was machen

greetz André
bastla
bastla 15.02.2011 um 11:15:23 Uhr
Goto Top
... wobei es sich anbieten würde, das Ganze etwas kompakter zu formulieren:
Ping %VAR3% -n 01|find "Zeit" 1>nul && (echo %VAR3% o.k.) || (echo Verbindung test1 nok & goto :XY)
Außerdem wird es eher sinnvoll sein, anstelle eines "goto" ein "call" zu verwenden, da ja noch weitere Überprüfungen folgen sollen ...
Wenn es tatsächlich genügt, nur ein einziges Mal (wenn eine der beiden ein "nok" zurückbringt ) eine Aktion auszuführen, dann eher:
set "nok="  
Ping %VAR3% -n 01|find "Zeit" 1>nul && (echo %VAR3% o.k.) || (echo Verbindung test1 nok & set "nok=True")  
...
if defined nok goto :XY
Grüße
bastla
charmeur
charmeur 15.02.2011 um 16:01:02 Uhr
Goto Top
Danke für die Hilfe und den Antworten also irgend wie funkioniert das ganze nicht bei mir kommt immer echo Verbindung test1 nok heraus ich habe nun mal mein "Anfängerscript" hinzu gefügt


----------------------------
@echo off
mode 40,20
:anfang
cls

set /a i=0
 :start
 if /I %i% GEQ 0 goto :next
 set /a i=%i%+1 
 cls & echo %i% von 30 Sekunden
echo Bitte Warten
ping localhost -n 2 >NUL
 goto :start
 
:next

 
SET VAR1=192.168.100.1
SET VAR2=192.168.200.1
SET VAR3=Google.de
Set VAR4=00-25-D3-7C-21-7A


 cd z: && goto WORKINGt
 GoTo Verbindungstest 
:WORKINGt

 
 cd Y: && goto WORKING1
 GoTo Verbindungstest
:WORKING1
exit

:Verbindungstest




rem ********************************* LÖSCHEN DER NETZWERKVERBINDUNGEN *******************************************

ECHO +++++++++++++++++++ Trennung 
echo.
net use * /d /y

cls
rem ********************************* Verbindungstest ************************************************************

ECHO +++++++++++++++++++ Verbindungstest
echo.



# Hier soll kontrolliert werden ob das Netzwerk erreichbar ist VAR1 VAR2 Var3
# VAR 3 dient nur zur Kontrolle ob eine Internet Verbindung steht 
# VAR1 und VAR 2 sind die NetzLaufwerke die Kontrolliert werden sollen und falls VAR1 nicht erreichbar sollte dann 
# ein GOTO :VPNSoftwareMinseln stattfinden und Fals VAR2 eben nicht erreichbar ist ein GOTO :VPNSoftwareKarsau hindergrund ist 
# das ich einen Surf Stick habe den ich Unterwegs nutze, der dann eben nicht im Netzwerk ist und ich eine VPN Software starten möcht 



Ping %VAR1% -n 01|find "Zeit" 1>nul && (echo %VAR1% o.k.) || (echo Verbindung nok & goto :XY)  

:XY


pause
:Verbindung
GOTO Verbindungerfolgreich
:keineverbindung
cls
echo +++++++++++++++++++ Auswahl &echo.
Echo 1 - Neu Testen
Echo 2 - VPN Verbindung Minseln
Echo 3 - VPN Verbindung Karsau
Echo 0 - Beenden
echo.
echo ************************** &echo.
Ping  %VAR1% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==1 (echo Verbindung zu Minseln nok &echo.)

Ping  %VAR2% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==1 (echo Verbindung zu Kasau nok &echo.)
echo ************************** &echo.

set /p choice=Bitte treffe deine Auswahl.
echo.


if %choice% == 1 goto Verbindungstest
if %choice% == 2 goto VPNSoftwareMinseln
if %choice% == 3 goto VPNSoftwareKarsau
if %choice% == 0 exit

:Verbindungerfolgreich
cls
rem ********************************* NETZLAUFWERK KARSAU *******************************************

echo +++++++++++++++++++ Netzlaufwerk Karsau
echo.

Ping %VAR2% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (net use Z: \\%VAR2%\fritz.nas\USBDRIVE-01 & echo Verbunden mit Karsau
echo.)

Ping %VAR2% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==1 (echo keine Verbindung mit Karsau, Software wird gestartet.
echo.)

rem ********************************* NETZLAUFWERK MINSELN *******************************************
rem %VAR4% MAC Adresse

ipconfig /all |find /i "%VAR4%" 1>nul  
if %ERRORLEVEL%==0 (cls & echo +++++++++++++++++++ Netzlaufwerk Minseln
echo.) ELSE (exit)

Ping %VAR1% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==1 (cls & echo keine Verbindung mit Minseln, Software wird gestartet.
echo.)

Ping %VAR1% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (net use Y: \\%VAR1%\uStor01\Thomas & echo Verbunden mit Minseln 
echo.)


cls
echo ************************** &echo.
Ping  %VAR1% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (echo Verbindung zu Minseln ok &echo.)

Ping  %VAR2% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (echo Verbindung zu Karsau ok &echo.)
echo ************************** &echo.


ping localhost -n 6 >NUL
exit

rem ********************************* PRÜFUNG OB VERBINDUNG VORHANDEN *******************************************

:VPNSoftwareMinseln
Ping %VAR1% -n 01|find "Zeit" 1>nul   
if %ERRORLEVEL%==0 (cls & echo Netzlaufwek Minseln wurde verbunden.) ELSE  (start cmd /C "color f0 &echo.& echo Verbindungsaufbau!&echo.& echo Verbindung wird mit VPN Software &echo. &echo Thomas &echo. & echo Herstellen & echo. & ping localhost -n 5 >NUL & start C:\Programme\ShrewSoft\"VPN Client"\ipsecc.exe -r Thomas -a")  
cls
goto :anfang

:VPNSoftwareKarsau
Ping %VAR2% -n 01|find "Zeit" 1>nul  
if %ERRORLEVEL%==0 (cls & echo Netzlaufwek Karsau wurde verbunden.) ELSE  (start cmd /C "color f0 &echo.& echo Verbindungsaufbau!&echo.& echo Verbindung wird mit VPN Software &echo. &echo Michael &echo. & echo Herstellen & echo. & ping localhost -n 5 >NUL & start C:\Programme\ShrewSoft\"VPN Client"\ipsecc.exe -r Michael -a")  
cls
goto :anfang
Skyemugen
Skyemugen 15.02.2011 um 16:09:50 Uhr
Goto Top
Aloha,

ohne mir das groß anzugucken *schock* möchte ich dich bitten, zum Wohle der Augen aller

die tags einzusetzen

Danke & greetz, André
bastla
bastla 15.02.2011 um 21:31:06 Uhr
Goto Top
Hallo charmeur!

Etwas eingedampft und handwerklich begradigt (aber nicht weiter durchdacht geschweige denn getestet face-wink) könnte das dann etwa so aussehen:
@echo off & setlocal
mode 40,20
:anfang
cls

set /a i=0
:start
if %i% geq 30 goto :next
set /a i+=1 
cls & echo %i% von 30 Sekunden
echo Bitte Warten
ping localhost -n 2 >NUL
goto :start
 
:next
set VAR1=192.168.100.1
set VAR2=192.168.200.1
set VAR3=Google.de
set VAR4=00-25-D3-7C-21-7A

cd z:>nul || goto :Verbindungstest 
cd y:>nul && goto :eof

:Verbindungstest
rem ********************************* LÖSCHEN DER NETZWERKVERBINDUNGEN *******************************************
ECHO +++++++++++++++++++ Trennung 
echo.
net use * /d /y
cls
rem ********************************* Verbindungstest ************************************************************

ECHO +++++++++++++++++++ Verbindungstest
echo.

:: Hier soll kontrolliert werden ob das Netzwerk erreichbar ist VAR1 VAR2 Var3
:: VAR 3 dient nur zur Kontrolle ob eine Internet Verbindung steht 
:: VAR1 und VAR 2 sind die NetzLaufwerke die Kontrolliert werden sollen und falls VAR1 nicht erreichbar sollte dann 
:: ein GOTO :VPNSoftwareMinseln stattfinden und Fals VAR2 eben nicht erreichbar ist ein GOTO :VPNSoftwareKarsau hindergrund ist 
:: das ich einen Surf Stick habe den ich Unterwegs nutze, der dann eben nicht im Netzwerk ist und ich eine VPN Software starten möcht 



Ping %VAR1% -n 1|find "Zeit" 1>nul && (echo %VAR1% o.k.) || (echo Verbindung nok & goto :VPNSoftwareMinseln)  

pause
:Verbindung
GOTO Verbindungerfolgreich

:keineverbindung
cls
echo +++++++++++++++++++ Auswahl &echo.
Echo 1 - Neu Testen
Echo 2 - VPN Verbindung Minseln
Echo 3 - VPN Verbindung Karsau
Echo 0 - Beenden
echo.
echo ************************** &echo.
Ping  %VAR1% -n 1|find "Zeit" 1>nul  
if %ERRORLEVEL%==1 (echo Verbindung zu Minseln nok &echo.)

Ping  %VAR2% -n 1|find "Zeit" 1>nul  
if %ERRORLEVEL%==1 (echo Verbindung zu Kasau nok &echo.)
echo ************************** &echo.

:Eingabe
set /p choice=Bitte treffe deine Auswahl.
echo.


if %choice% == 1 goto :Verbindungstest
if %choice% == 2 goto :VPNSoftwareMinseln
if %choice% == 3 goto :VPNSoftwareKarsau
if %choice% == 0 goto :eof

goto :Eingabe

:Verbindungerfolgreich
cls
rem ********************************* NETZLAUFWERK KARSAU *******************************************

echo +++++++++++++++++++ Netzlaufwerk Karsau
echo.

Ping %VAR2% -n 1|find "Zeit" 1>nul && (  
    net use Z: \\%VAR2%\fritz.nas\USBDRIVE-01
    echo Verbunden mit Karsau
    echo.
) || (
    echo keine Verbindung mit Karsau, Software wird gestartet.
    echo.
)

::::::::::  Sollte hier eine "Software" gestartet werden? :::::::::::  

rem ********************************* NETZLAUFWERK MINSELN *******************************************
rem %VAR4% MAC Adresse

ipconfig /all |find /i "%VAR4%" 1>nul || goto :eof  
cls
echo +++++++++++++++++++ Netzlaufwerk Minseln
echo.

Ping %VAR1% -n 1|find "Zeit" 1>nul && (  
    net use Y: \\%VAR1%\uStor01\Thomas
    echo Verbunden mit Minseln 
    echo.
) || (
    cls
    echo keine Verbindung mit Minseln, Software wird gestartet.
    echo.
)

::::::::::  Sollte hier auch eine "Software" gestartet werden? :::::::::::  

cls
echo ************************** &echo.
ping  %VAR1% -n 1|find "Zeit" 1>nul && (echo Verbindung zu Minseln ok &echo.)  
Ping  %VAR2% -n 1|find "Zeit" 1>nul && (echo Verbindung zu Karsau ok &echo.)  
echo ************************** &echo.

ping localhost -n 6 >NUL
goto :eof

rem ********************************* PRÜFUNG OB VERBINDUNG VORHANDEN *******************************************

:VPNSoftwareMinseln
Ping %VAR1% -n 1|find "Zeit" 1>nul && (  
    cls
    echo Netzlaufwek Minseln wurde verbunden.
) || (
    start cmd /C "color f0 &echo.& echo Verbindungsaufbau!&echo.& echo Verbindung wird mit VPN Software &echo. &echo Thomas &echo. & echo Herstellen & echo. & ping localhost -n 5 >NUL & start C:\Programme\ShrewSoft\"VPN Client"\ipsecc.exe -r Thomas -a"  
)
goto :anfang

:VPNSoftwareKarsau
Ping %VAR2% -n 1|find "Zeit" 1>nul && (  
    cls
    echo Netzlaufwek Karsau wurde verbunden.
) || (
    start cmd /C "color f0 &echo.& echo Verbindungsaufbau!&echo.& echo Verbindung wird mit VPN Software &echo. &echo Michael &echo. & echo Herstellen & echo. & ping localhost -n 5 >NUL & start C:\Programme\ShrewSoft\"VPN Client"\ipsecc.exe -r Michael -a"  
)
goto :anfang
Allerdings fehlt mir noch das (in den Zeilen 89 und 109 versprochene) "Starten der Software" bzw die ev darauf folgenden Aktionen - zumindest ein "goto" (und wenn's nach ":eof" ist) könnte ich mir da noch vorstellen ...

Grüße
bastla