1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Information ausblenden

Problem mit Batchdatei

Dieses Thema im Forum "Windows NT / 95 / 98 / 2000 / ME" wurde erstellt von Nitro, 29. April 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Nitro

    Nitro ROM

    Hallo,

    ich versuche gerade einen Batch zu schreiben um Laufwerke zu mappen. Das ganze sieht folgender maßen aus:

    ------------------------------------------------------------------------------------------

    @ECHO OFF
    ECHO Mit diesem Batch können Netzlaufwerke verbunden werden!
    ECHO Bitte die gewünschte Auswahl treffen...
    ECHO =======================================================
    ECHO 1 = LAN1
    ECHO 2 = LAN2
    ECHO =======================================================
    CHOICE /C:12 Bitte Netzwerk wählen...
    IF ERRORLEVEL 1 GOTO M-1
    IF ERRORLEVEL 2 GOTO M-2
    :M-1
    cls
    ECHO Bitte die gewünschte Verbindung wählen:
    ECHO =======================================================
    ECHO A = LW P mit LINUX1/SYS verbinden
    ECHO B = LW T mit LINUX1/SYS/DB verbinden
    ECHO =======================================================
    CHOICE /C:AB Bitte das Laufwerk wählen...
    IF ERRORLEVEL A GOTO M-A
    IF ERRORLEVEL B GOTO M-B
    :M-2
    cls
    ECHO Bitte die gewünschte Verbindung wählen:
    ECHO =======================================================
    ECHO X = LW O mit LINUX2/SYS verbinden
    ECHO Y = LW K mit LINUX2/SYS/DB verbinden
    ECHO =======================================================
    CHOICE /C:XY Bitte das Laufwerk wählen...
    IF ERRORLEVEL X GOTO M-X
    IF ERRORLEVEL Y GOTO M-Y
    :M-A
    cls
    net use p: \\linux1\sys
    PAUSE
    GOTO CLOSE
    :M-B
    cls
    net use t: \\linux1\sys\db
    PAUSE
    GOTO CLOSE
    :M-X
    cls
    net use o: \\linux2\sys
    PAUSE
    GOTO CLOSE
    :M-Y
    cls
    net use k: \\linux2\sys\db
    PAUSE
    GOTO CLOSE
    :CLOSE
    ECHO Jetzt wird das Programm beendet
    PAUSE
    EXIT

    -------------------------------------------------------------------------------------------

    Jetzt habe ich folgendes Problem.

    Wenn ich nach dem ersten CHOICE Befehl das LAN2 sollte er gleich zum GOTO M-2 gehen. Allerdings wird auch M-1 abgearbeitet. Das will ich aber nicht. Er soll nur M-2 machen.

    Irgendwas mach ich wohl falsch. Habe noch nicht viel mit Batches gemacht.

    Danke für Eure Hilfe.

    Gruß
     
  2. gert12349

    gert12349 Halbes Megabyte

    Sehr gute Idee :-) Funktioniert nur leider nicht :-(
    Nach errorlevel muss eine Zahl folgen. Die Gleichheitszeichen werden ignoriert. In deinem Beispiel landest du immer bei Edit.

    Gert
     
  3. Jörn Stadelmann

    Jörn Stadelmann Viertel Gigabyte

    Funktioniert aber auch so ;-)

    echo A Microsoft Editor
    echo B Microsoft Anti-Virus
    echo C Microsoft Backup
    echo.
    choice /c:abc Choose an option
    if errorlevel==1 goto Edit
    if errorlevel==2 goto Msav
    if errorlevel==3 goto MSBackup

    J2x
     
  4. gert12349

    gert12349 Halbes Megabyte

    Der Errorlevel ist grundsätzlich eine Zahl zwischen 0 und 255 und kein Buchstabe. Weiterhin bedeutet z.B. if errorlevel 3 NICHT wenn errorlevel = 3 SONDERN >=3. Das bedeutet, die Abfrage der Errorlevel muss in fallender Reihenfolge stattfinden, also erst 2 und dann 1. Errorlevel 0 bedeutet User-Abruch durch Strg-Break oder Strg-C und Errorlevel 255 ist eine Fehlermeldung vom Choice-Befehl.

    Ein Beispiel:

    echo A Microsoft Editor
    echo B Microsoft Anti-Virus
    echo C Microsoft Backup
    echo.
    choice /c:abc Choose an option
    if errorlevel 3 goto MSBackup
    if errorlevel 2 goto Msav
    if errorlevel 1 goto Edit

    Gruß Gert
     
  5. ede

    ede Kbyte

    hi nitro,

    hab mal deinen code um ein paar zeilen verkleinert
    und die bindestriche raus, vielleicht hilfts.

    anmerkung: sprungbefehle auf code der unmittelbar folgt sind nicht nötig.

    ____________________________________________________
    @ECHO OFF
    ECHO Mit diesem Batch können Netzlaufwerke verbunden werden!
    ECHO Bitte die gewünschte Auswahl treffen...
    ECHO =======================================================
    ECHO 1 = LAN1
    ECHO 2 = LAN2
    ECHO =======================================================
    CHOICE /C:12 Bitte Netzwerk wählen...
    IF ERRORLEVEL 2 GOTO M2
    cls
    ECHO Bitte die gewünschte Verbindung wählen:
    ECHO =======================================================
    ECHO A = LW P mit LINUX1/SYS verbinden
    ECHO B = LW T mit LINUX1/SYS/DB verbinden
    ECHO =======================================================
    CHOICE /C:AB Bitte das Laufwerk wählen...
    IF ERRORLEVEL A GOTO MA
    IF ERRORLEVEL B GOTO MB
    :M2
    cls
    ECHO Bitte die gewünschte Verbindung wählen:
    ECHO =======================================================
    ECHO X = LW O mit LINUX2/SYS verbinden
    ECHO Y = LW K mit LINUX2/SYS/DB verbinden
    ECHO =======================================================
    CHOICE /C:XY Bitte das Laufwerk wählen...
    IF ERRORLEVEL X GOTO MX
    IF ERRORLEVEL Y GOTO MY
    :MA
    cls
    net use p: \\linux1\sys
    PAUSE
    GOTO CLOSE
    :MB
    cls
    net use t: \\linux1\sys\db
    PAUSE
    GOTO CLOSE
    :MX
    cls
    net use o: \\linux2\sys
    PAUSE
    GOTO CLOSE
    :MY
    cls
    net use k: \\linux2\sys\db
    PAUSE
    :CLOSE
    ECHO Jetzt wird das Programm beendet
    PAUSE
    EXIT
    ___________________________________________________

    hth ede
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen