tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
757
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    oli0602 oli0602 ist offline Rookie
    Registriert seit
    Jul 2011
    Beiträge
    6
    Hallo Leute,

    um mir meine Arbeit etwas zu erleichtern, habe ich eine Batch-Datei geschrieben, die mir den Zugang zu verschiedenen Ordnern erleichtern soll.

    Nun komme ich aber bei Auswahl von 3. "Installationspfad" und 4. "Import" nicht weiter. Er bricht bei dieser Auswahl einfach ab. Alles andere geht. Habt Ihr eine Idee, woran es liegen könnte? Es scheint ja irgendwie mit den Verzeichnissen zusammenzuhängen!?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    
    @echo off
    :Menu
    set auswahl=99
    cls
    echo Auswahl der meistgenutzten Ordner
    echo ##################################
    echo.
    echo 1 - Testdaten
    echo 2 - Tempfolder "Temp" (X:\Temp)
    echo 3 - Installationspfad SOFTWARE
    echo 4 - Import (D:\Import)
    echo 5 - Storage (D:\Storage)
    echo 0 - Beenden
    echo.
     
    set /p auswahl="Auswahl? "
     
    if "%auswahl%" == "1" (
    goto Testdaten
    ) else if "%auswahl%" == "2" (
        goto Temp
      ) else if "%auswahl%" == "3" (
            goto InstallPath
        ) else if "%auswahl%" == "4" (
            goto ImportPath
          ) else if "%auswahl%" == "5" (
                goto StoragePath
            ) else if "%auswahl%" == "0" (
                    goto Exit
              ) else (
                    echo Falsche Eingabe!
                    pause
                    goto menu
                )
     
    :Testdaten
    explorer "S:\Testdaten"
    goto Menu
     
    :Temp
    if exist "X:\Temp" (
        explorer "X:\Temp"
    ) else (
        echo Verzeichnis nicht kann nicht gelesen werden/ist nicht vorhanden!
        pause
      )
    goto menu
     
    :InstallPath
    if exist "C:\Program Files\XYZ" (
        explorer "C:\Program Files\XYZ"
        goto Menu
    ) else if exist "C:\Program Files (x86)\XYZ (
            explorer "C:\Program Files (x86)\XYZ"
            goto menu
      ) else if exist "C:\Programme\XYZ" (
                explorer "C:\Programme\XYZ"
                goto menu
        ) else (
            echo Verzeichnis kann nicht gelesen werden/ist nicht vorhanden!
            pause
        )   
    goto menu
     
    :ImportPath
    if exist "D:\Import" (
        explorer "D:\Import"
        goto menu
    ) else (
        echo Verzeichnis nicht vorhanden!
        set /p mkImport="Verzeichnis unter D:\Import anlegen(j/n)? "    
        if "%mkImport%" == "j"(
            mkdir D:\Import
            explorer "D:\Import"
            goto menu
        ) else (
            echo Nicht gewünscht...
            pause
          )
    )
    goto menu
     
    :StoragePath
    if exist "D:\Storage" (
        explorer "D:\Storage"
    ) else (
        echo Verzeichnis kann nicht gelesen werden/ist nicht vorhanden!
        pause
      )
    goto menu
     
    :Exit
    exit

    Vielen Dank und beste Grüße
    oli0602
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Das nächste Mal, schreibe doch bitte dazu was die Ausgabe / der Fehler ist. Ich bekomme bei Eingabe von "3" folgendes:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ...
    H:\dir>if "3" == "1" (goto Testdaten )  else if "3" == "2" (goto Temp )  else if
     "3" == "3" (goto InstallPath )  else if "3" == "4" (goto ImportPath )  else if "3" == "5" (goto StoragePath )  else if
    "3" == "0" (goto Exit )  else (
    echo Falsche Eingabe!
     pause
     goto menu
    )
    The syntax of the command is incorrect.
    (echo hab ich natürlich auf "on" gestellt... *wink-mit-dem-zaunpfahl*)

    \edit: Vergiss was ich geschrieben hatte, der Fehler liegt woanders. Du hast in Zeile 53 das schließende Anführungszeichen vergessen.

    Aber mach es dir doch nicht so schwer:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    if "%auswahl%" == "1" goto Testdaten
    if "%auswahl%" == "2" goto Temp
    if "%auswahl%" == "3" goto InstallPath
    if "%auswahl%" == "4" goto ImportPath
    if "%auswahl%" == "5" goto StoragePath
    if "%auswahl%" == "0" goto Exit
     
    echo Falsche Eingabe!
    pause
    goto menu
    Gruß
    Geändert von deepthroat (26.01.12 um 07:10 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    oli0602 oli0602 ist offline Rookie
    Registriert seit
    Jul 2011
    Beiträge
    6
    Hallo deepthroat,

    erst einmal vielen Dank für deine schnelle Antwort! Ich habe erst einmal meine verschachtelten If's "gestrafft".

    Das nächste Mal, schreibe doch bitte dazu was die Ausgabe / der Fehler ist.
    Leider hätte ich dazu nicht viel schreiben können, selbst bei @echo on wird das Fenster einfach geschlossen...

    Du hast in Zeile 53 das schließende Anführungszeichen vergessen.
    Danke für den Hinweis. Habe ich behoben.

    Dennoch will Auswahlpunkt 4 nicht funktionieren! Er bricht einfach ab, ohne Hinweismeldung!

    Noch eine Idee dazu? Du hattest vor deinem Edit glaube ich geschrieben, dass in einem Else-Zweig nur ein Befehl vorkommen darf? Sprich ich müsste evtl. eine weitere Sprungmarke einbauen die dann das Verzeichnis erzeugt?

    Beste Grüße

    ###EDIT###: Ich habe den Fehler gefunden! Wenn man nach einem "IF" mehrere Befehle verwenden möchte, so muss zwischen dem If und der Klammer ein Leerzeichen sein! Na darauf soll mal einer kommen Siehe Wikibooks
    Geändert von oli0602 (26.01.12 um 11:00 Uhr)
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von oli0602 Beitrag anzeigen
    Leider hätte ich dazu nicht viel schreiben können, selbst bei @echo on wird das Fenster einfach geschlossen...
    Du solltest zum Debugging das Skript von Hand in der Eingabeaufforderung starten - und das exit weglassen (ist sowieso unnötig, verwende einfach die spezielle Sprungmarke "goto :eof").

    Gr7ß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 14.04.10, 11:46
  2. OSX Installation schlägt fehl
    Von Peter Klein im Forum Mac OS
    Antworten: 10
    Letzter Beitrag: 21.11.09, 12:37
  3. Serialisierung schlägt fehl
    Von lazydog im Forum Java
    Antworten: 2
    Letzter Beitrag: 30.04.09, 16:44
  4. file_exists() schlägt fehl
    Von ahykes im Forum PHP
    Antworten: 4
    Letzter Beitrag: 20.04.09, 14:17
  5. SQL-Abfrage schlägt fehl
    Von anopheles1337 im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 15.04.06, 01:24

Stichworte