Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben
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 ?

Geschrieben

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.

Geschrieben

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

Geschrieben

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 B) 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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...