Abfrageschleife in Batchdatei

Dieses Thema Abfrageschleife in Batchdatei im Forum "Linux & Andere" wurde erstellt von ITfisi, 22. Okt. 2013.

Thema: Abfrageschleife in Batchdatei Hallo ich brauche Hilfe bei meiner Batchdatei ich möchte prüfen ob ein Laufwerk X angeschlossen bzw. verfügbar...

  1. Hallo

    ich brauche Hilfe bei meiner Batchdatei
    ich möchte prüfen ob ein Laufwerk X angeschlossen bzw. verfügbar ist. Maximal 5 Versuche dann eine Error Meldung ausgeben.
    Die Abfrage ob das LW. vorhanden ist, funktioniert.
    Nur wenn es nicht da ist ... wie geht es dann weiter in einer Schleife ?
    Komme da jetzt nicht weiter ....
    Muss / kann man das mit einer for schleife machen und wie ... stehe da auf dem Schlauch :embarrassed:

    hoffe es gibt noch jemand der mir helfen kann - obwohl man batch fast nicht mehr braucht
    es geht hauptsächlich um den roten Teil - der Rest funz so, so
    Vielleicht gibt es auch was viel einfacheres

    Vielen Dank schon mal
    Grüsse Pepe

    hier mal mein Code:

    Code:
    [COLOR="#FF0000"]@echo off
        set counter=0
        set maxcount=5
        set /a counter=%counter% + 1
        if "%counter%" EQU "%maxcount%" goto ERMAX
    echo.
    :: Abfrage ist LW X:\ vorhanden
    :: maximal 5 Abfragen
    echo.
    
    
    
        :Start
    cd s: && goto WAHL
    if errorlevel 1 goto reask
    
    [/COLOR]
    :reask
    echo.
    echo.
    echo Was willst du machen ?
    echo.
    echo LW anschliessen und wiederholen oder Abbrechen
    echo.
    choice /c:WA /m "Bitte wählen: (W)iederholen (A)bbruch" 
    if errorlevel 3 goto 
    if errorlevel 2 goto abbruch
    if errorlevel 1 goto wieder
    
    
    
    :wieder
    cls
    goto start
    
    
    
    
    
    :wahl
    echo.
    :: Abfrage Backup oder Restore
    cls
    echo.
    echo Backup oder Restore ausführen ?
    echo.
    choice /c:BRA /m "Bitte wählen: (B)ackup (R)estore (A)bbruch" 
    if errorlevel 3 goto abbruch
    if errorlevel 2 goto restore
    if errorlevel 1 goto backup
    echo.
    
    
    
    
    :backup
    cls
    echo.
    echo USB Laufwerk vorhanden
    echo.
    echo.
    echo Starte Backup Script
    timeout /T 3 >NUL
    call backup.bat
    echo.
    goto nix
    
    
    
    :restore
    cls
    echo.
    echo USB Laufwerk vorhanden
    echo.
    echo.
    echo Starte RESTORE Script
    timeout /T 3 >NUL
    call restore.bat
    echo.
    goto nix
    
    
    :abbruch
    cls
    echo.
    echo Ausfuehrung abgebrochen
    echo.
    pause
    goto nix
    
    
        :ERMAX
        cls
        echo.
        echo SORRY - max. Anzahl der Versuche wurde erreicht.
        goto ENDE
         
        :ENDE
        echo.
        pause
        goto nix
    
    
    :nix
    exit
    
     
  2. Versuchs mal damit:
    Code:
    set /a loop=0
     
    :start
    set /a loop=%loop%+1
    echo start %loop%
    set started=%errorlevel%
    if %loop%==5 goto fehler
    if %started%==0 pause & goto start
     
    :fehler
    echo ERROR
    
    Rest musst halt anpassen.
     
  3. Hallo,

    vielen Dank, bin noch am arbeiten
    sobald ich zu hause bin teste ich alles

    Gruss Pepe
     
  4. Hallo

    dein LOOP funktioniert.
    Jedoch springt es nicht weiter wenn das Laufwerk vorhanden ist ...
    Es werden immer 5 Versuche durchgeführt ob LW. da oder nicht.
    Hast du noch eine Idee ?

    Danke
     
  5. Musst halt noch in die Schleife einbringen:
    Code:
    if exist X:\nul then goto AnweisungWennVorhanden
    
    
    :AnweisungWennVorhanden
     echo tuergendwas
     :end
    
    /untested
     
  6. Hallo

    oh ich verzweifle wirklich ... und es ist nicht mein erstes Batchfile was ich mache
    aber mit den Schleifen habe ich so meine Probleme :embarrassed:
    es will einfach nicht funktionieren

    wenn das Laufwerk gefunden wird soll es mit "test" weiter machen
    wenn das LW. nicht gefunden wird soll es bis zu 5 mal neu versuchen, danach zur Sprungmarke :fehler
    ich denke es sind 3 Teile

    der LOOP
    die LW Prüfung
    die Anweisung - hier die Sprungmarke "test"

    egal an welche Stelle ich die LW Prüfung schreibe, die Ausführung ist nicht wie sie sein soll
    und LW C: sollte es doch finden.

    hier mein Code


    @echo off
    echo.
    set /a loop=0

    :start
    set /a loop=%loop%+1
    echo start %loop%
    set started=%errorlevel%
    if %loop%==5 goto fehler
    if %started%==0 pause & goto start

    cd c: && goto test

    :test
    echo.
    echo Test erfolgreich
    pause
    goto nix


    :fehler
    echo SORRY - max. Anzahl der Versuche wurde erreicht.
    goto ENDE


    :ENDE
    pause
    goto nix


    :nix
    exit
     
    Zuletzt bearbeitet: 26. Okt. 2013
  7. Code:
    @echo off
    
    set /a loop=0
     
    :start
    set /a loop=%loop%+1
    set started=%errorlevel%
    if %loop%==5 goto fehler
    if exist X:\nul goto success
    if %started%==0 pause & goto start
    
    
    :success
    echo Laufwerk gefunden
    Pause
    exit
    
    :fehler
    echo: ERROR
    
     
    Zuletzt bearbeitet: 27. Okt. 2013
  8. Hallo

    vielen vielen Dank :toll:
    Jetzt funktioniert es wie es soll

    Gruss Pepe
     
Die Seite wird geladen...

Abfrageschleife in Batchdatei - Ähnliche Themen

Forum Datum
Pfade in Batchdatei Windows 7 Forum 18. Feb. 2015
Windows Batchdateien funktionieren Nicht Windows XP Forum 22. Jan. 2012
Batchdatei erstellen: Ordner öffnen, Datei markieren, rechter Mausklick, usw. Windows XP Forum 23. Aug. 2012
Batchdatei Windows 7 Forum 30. Jan. 2011
VBS Script mit Abfrage und eine Batchdatei ausführen. Webentwicklung, Hosting & Programmierung 10. Juli 2010