hetrust Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 Hallo, ich fange gerade erst damit an, und stehe vor einem hoffentlich kleinem Problem. Ich möchte ein kleines Auswahlmenü schreiben. Meine Ansetze: @ECHO OFF :ANFANG CLS ECHO 1.) Verz1. erstellen ECHO 2.) Verz2. erstellen ECHO. ECHO. set /p userinp="Bitte Auswahl eingeben (1/2):" if %userinp%="1" goto verz1 if %userinp%="2" goto verz2 :verz1 md c:test1 :verz2 md c:test2 :ENDE PAUSE Also es soll lediglich in dem selben Verzeichniss, ein neuer folder mit namen test1, und einen mit namen test2 erstellt werden. Wenn ich das so wie oben nutze, geht nach der Auswahl 1 oder 2 der DOS Prompt einfach zu. Nutze WinXP Home Ich brauche da irgendwie einen Schups in die richtige Richtung. Vielen Dank Zitieren
Amstelchen Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 Bitte Auswahl eingeben (1/2):1 "="1"" ist syntaktisch an dieser Stelle nicht verarbeitbar. D:\> probiers mal so (mit c-style gleichheitsabfrage): if %userinp%=="1" goto verz1 if %userinp%=="2" goto verz2 s'Amstel Zitieren
Landaley Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 Wenn du nen Denkanstoss willst, dann starte deine Batch-Datei mal von der Konsole aus und sieh, was passiert... EDIT: Mist, zu langsam Zitieren
Vader Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 Zur Ergänzung, wenn du das Skript so lässt, werden bei der Option 1 beide Ordner angelegt. Vielleicht noch ein goto ENDE zwischen rein schieben. VIele Grüße Vader Zitieren
hetrust Geschrieben 17. Januar 2006 Autor Geschrieben 17. Januar 2006 Zur Ergänzung, wenn du das Skript so lässt, werden bei der Option 1 beide Ordner angelegt. Vielleicht noch ein goto ENDE zwischen rein schieben. VIele Grüße Vader Ja genau liegt nun mein nächstes Problem. @ECHO OFF :ANFANG CLS ECHO 1.) Verz1 ECHO 2.) Verz2 ECHO 3.) Verz3 ECHO. ECHO. set /p userinp="Bitte Auswahl eingeben (1/2/3):" if %userinp%=="1" goto verz1 if %userinp%=="2" goto verz2 if %userinp%=="3" goto verz3 :verz1 call md C:test1 GOTO ENDE :verz2 call md C:test2 GOTO ENDE :verz3 call md C:test3 GOTO ENDE :ENDE ECHO fertig... PAUSE Er erstellt mir immer nur den Ordner test1! Aber warum ? Zitieren
MES_K Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 kleine frage rein aus interesse: gabs bei batsch dateien nicht mal sowas wie errorlevel? Zitieren
Carnie Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 Mhh also ich als Programmierer bekomm eher nen Krampf bei den ganzen Goto Befehlen. Müssen die in der Batchprogrammierung sein.Kann ich mir irgendwie nicht vorstellen aber hab halt null Ahnung von dem Thema. Zitieren
hetrust Geschrieben 17. Januar 2006 Autor Geschrieben 17. Januar 2006 Also wenn ich die GOTO Befehle rausnehme, erstellt er mir immer aller 3 aufeinmal, egalm was ich wähle. MIT den GOTO Befeheln erstellt er mir eben immer blos ein und die Selbe. die 1. :cool: cu Zitieren
Landaley Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 Lass bei deiner if-Bedingung die Anführungszeichen weg... if %userinp%==1 goto verz1 if %userinp%==2 goto verz2 if %userinp%==3 goto verz3 Zitieren
HuDeanY Geschrieben 18. Januar 2006 Geschrieben 18. Januar 2006 Begründung für vorhergehenden Post: (nur zur Unterstützung des Verständnisses) Wenn du nach if %userinp%=="3" goto verz3 ein GOTO ENDE eingefügt hättest wärst du a) auf einer sichereren Seite mit deiner Programmausführung im Fehler/Bug-Fall selbst drauf gekommen, daß er dir dann garkein Verzeichnis erstellt weil deine Syntax in den 3 If-Clauses falsch ist Das Programm läuft nämlich in keine der IF-Bedingungen hinein und landet deshalb bei der folgenden Programmmarke (:verz1) weil die einfach ungeschützt danach kommt. Und die erstellt nunmal Verz1. Außerdem solltest du vor set /p userinp="Bitte Auswahl eingeben (1/2/3):" auch noch ein set userinp=0 einfügen da sonst der Tastaturpuffer erhalten bleibt und beim nächsten Aufruf der Batch-Datei und einem einfachen <ENTER> bei der Abfrage einfach die vorhergehende Auswahl erneut genommen wird. Nur so als Kommentar, weil mir eh grad langweilig war. :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.