2 Stimmen

Interaktive Stapeldatei

Wie gehe ich mit einer interaktiven Batch-Datei vor?

Beispiel,

Möchten Sie fortfahren? [j/n]

Wenn 'y' Gehe zu Label1

Else Goto Label2

Gracias

6voto

EggyBach Punkte 4040

Sie können den SET-Befehl verwenden. Im Folgenden finden Sie das DOS-Befehlsäquivalent des obigen Pseudocodes:

set /p choice=Do you want to continue? [y/n]
if '%choice%'=='Y' goto label1
goto label2

0 Stimmen

If '%choice%' == 'Y' goto label1 conditional operator. = dint work for me!

0 Stimmen

Sie können auch ein /i an das if anhängen, damit der Vergleich nicht von der Groß- und Kleinschreibung abhängt.

0 Stimmen

Rossel, wo soll ich das /i hinzufügen? Können Sie mir die Erklärung geben?

4voto

Timbo Punkte 26346

Mit dem Befehl choice können Sie eine Reihe gültiger Zeichen und eine Nachricht angeben:

choice /C YN /M "Do you want to continue?"
if errorlevel 2 goto labelno
if errorlevel 1 goto labelyes

1voto

J. Bond Punkte 426

Ich kenne 1 Möglichkeit, dies zu tun (wie @user3093687 gepostet)

set /p choice=Do you want to continue? (y,n)
if /I %choice%==y goto Label2
if /I %choice%==n goto exit

:Label2
Cls
echo You chose yes

:exit
exit

Das /I in der zweiten und dritten Zeile der Batch-Datei sorgt dafür, dass die Groß- und Kleinschreibung nicht beachtet wird und Sonderzeichen ignoriert werden (Beispiel: Y und y werden beide als y gelesen.

0 Stimmen

/i ignoriert ! ? Hm? Welche Version von Windows oder DOS verwenden Sie?

0 Stimmen

Ich verwende Windows 10 und wenn ich mit /I etwas wie y! Es wird als y gelesen. Haben Sie es ausprobiert?

0 Stimmen

Natürlich habe ich das. Funktionierte wie erwartet: y! ist nicht y . Auch Windows 10. Bitte überprüfen Sie das.

0voto

Set /p choice= Möchten Sie fortfahren? [y/n] wenn "%Wahl%" == "y" ( Gehe zu Etikett1 ) sonst goto label2

0voto

user3093687 Punkte 35

Die meisten Ihrer Antworten gefallen mir, aber das meiste, was ich tun würde, ist (zum Beispiel dieser Code ist meine Art der Organisation.

:Label1
@echo off
color (any color)
title (anything here)

set /p choice=Do you want to continue? [y/n]
IF %choice% == y goto Label2
IF %choice% == n exit

:Label2
cls
echo you chose Yes.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X