Veröffentlicht 17. Januar 200619 j 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
17. Januar 200619 j 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
17. Januar 200619 j Wenn du nen Denkanstoss willst, dann starte deine Batch-Datei mal von der Konsole aus und sieh, was passiert... EDIT: Mist, zu langsam
17. Januar 200619 j 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
17. Januar 200619 j 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 ?
17. Januar 200619 j kleine frage rein aus interesse: gabs bei batsch dateien nicht mal sowas wie errorlevel?
17. Januar 200619 j 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.
17. Januar 200619 j 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
17. Januar 200619 j Lass bei deiner if-Bedingung die Anführungszeichen weg... if %userinp%==1 goto verz1 if %userinp%==2 goto verz2 if %userinp%==3 goto verz3
18. Januar 200619 j 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. :-)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.