Eingabemaske in cmd?

Das Ergebnis basiert auf 7 Abstimmungen

Der Befehl lautet so:... 57%
Ganz so einfach ist das aber nicht... 29%
Was laberst du, das geht gar nicht! 14%

5 Antworten

Der Befehl lautet so:...

Du musst das eingeben:

In der Variable %Variable% wird der Name gespeichert.

Du kannst den namen später aufrufen, wenn du echo %Variable% eingibst

set/p Variable=Was ist dein Name:

n der Variable %Variable% wird der Name gespeichert.

Du kannst den namen später aufrufen, wenn du echo %Variable% eingibst!

Hoffe das hilft dir!

LG

creativeandmore

Woher ich das weiß:Hobby
Der Befehl lautet so:...

@echo Bitte Benutzernamen eingeben

set /p Benutzer=

In der Variable %Benutzer% hast du jetzt deine Eingabe.

Hilft dir das weiter?

Viele Grüße,

Ben

REasker 
Fragesteller
 07.01.2019, 18:04

ja auf jeden Fall vielen Dank!! Was ich noch nicht ganz verstanden habe, ist wo ich dann später die Eingabe finden kann.. Oder geht das gar nicht?

Mfg

0
JonaKilla12345  07.01.2019, 18:05
@REasker

Klar geht das, der Name ist dann in der Variable '%Benutzer%' gespeichert.

0
benmey  07.01.2019, 18:08
@REasker

Kein Problem, immer gerne :)

Vielleicht hilft dir ein Beispiel:

@echo Bitte Benutzernamen eingeben

set /p Benutzer=

@echo Bitte geben Sie Ihr Passwort ein:

set /p passwort=

Jetzt hast du in beiden Variablen jeweils deine Eingabe gespeichert.

Zum Beispiel könntest du dich nun auf ein Netzlaufwerk verbinden mithilfe der zuvor eingegebenen Variablen.

net use X: \\Server\Freigabename /User:Domäne\%Benutzername% %Passwort%

0
Der Befehl lautet so:...

Habe mir mal eben deine Kommentare durchgelesen und es macht nicht den Eindruck, als hättest du schon viel programmiert. Deswegen etwas ausführlicher erklärt.

In der Programmierung wirst du an Variablen nicht vorbeikommen. Diese funktionieren ähnlich wie in der Mathematik. Wikipedia beschreibt sie so:

In der Programmierung ist eine  Variable ein abstrakter Behälter für eine Größe, welche im Verlauf eines Rechenprozesses auftritt. Im Normalfall wird eine Variable im Quelltext durch einen Namen bezeichnet und hat eine Adresse im Speicher einer Maschine.

Das wichtige für dich ist zunächst, dass "eine Variable ein abstrakter Behälter" ist. Sie kann also verschiedene Werte beinhalten (in Objektorientierten Sprachen auch Objekte/Arrays/Funktionen/...). Auch der von dir zu erfragende Name kann als Zeichenkette (String) in einer Variablen gespeichert werden.

Wie setzt man aber nun eine Variable?
Für gewöhnlich steht links der Variablenname, also eine Bezeichnung für unseren Behälter, dann ein Gleichheitszeichen, das diesem Behälter den Wert rechts des Gleichheitszeichen zuweist.
Beispiel: (würde z.B. in JavaScript funktionieren, ohne Strict-mode)

Name = "REasker"

Im Behälter Name wird die Zeichenkette "REasker" abgespeichert.

In Batch wird davor noch das Wort set (=setzen, festlegen) geschrieben. Das Beispiel von oben würde also so aussehen: (Die Anführungszeichen um Strings kannst und musst du in Batch oft weglassen)

set name=REasker

In Pseudocode ausgedrückt: "Lege den Namen auf REasker fest."

Nun soll der Name aber nicht fest vorgegeben sein, sondern vom Benutzer eingegeben werden. Hierzu verwendest du den Schalter /P:

set /p name=

Willst du dem Benutzer auch noch sagen, was er eingeben soll, kannst du das entweder in der Zeile darüber (

echo Geben Sie ihren Namen ein:
set /p name=

) oder in der selben Zeile machen (

set /p name=Geben Sie ihren Namen ein: 

)

Was aber kannst du dann mit der Variable machen?

Einfachstes Beispiel: Ausgeben

echo.%name%

Damit wird nicht %name% ausgegeben, sondern der Inhalt der Variable name. Damit cmd weiß, was als Zeichenkette und was als Variable behandelt werden soll, werden Variablennamen in %Prozentzeichen% eingeschlossen.

Willst du das Ergebnis in einer Datei abspeichern, fügst du an den Befehl zum ausgeben einfach noch einen Pfeil auf einen Dateinamen an:

echo.%name%>name.txt

So nun aber mal zu einem vollständigen Programm:

@echo off
set /p name=Geben Sie ihren Namen ein: 
cls
echo Hallo %name%.
echo Der Benutzer mit dem Namen "%name%" benutzte am %date% das Programm. > daten.txt
pause

Die erste Zeile sorgt nur dafür, dass der Benutzer nicht die Befehle sieht, die ausgeführt werden. Damit auch der erste Befehl, der diese standardmäßig aktivierte Ausgabe erst deaktiviert, nicht ausgegeben wird, verwendet man das @. Theoretisch könntest du auch vor jede Zeile ein @ schreiben und das echo off weglassen. (Empfiehlt sich aber nur bei kurzen Programmen mit 1-3 Befehlen)

Die zweite Zeile ist der Befehl von vorhin, der den Benutzer nach seinem Namen fragt.

cls Löscht den bisherigen Text.

Die nächste Zeile ist ebenfalls bekannt, vor dem Namen ist lediglich noch ein "Hallo" eingefügt.

In der vorletzten Zeile wird wieder etwas in eine Datei ausgegeben, nur ist dort auch eine andere Variable zu finden: date. Diese enthält das aktuelle Datum.

Zum Schluss wird das Programm mit pause pausiert, würde man das nicht machen, wäre das Programm hier beendet und das Fenster würde sich schließen.

Ich hoffe ich konnte dir ein wenig helfen. Bei Unklarheiten und anderen Fragen, gerne Kommentieren :)

Der Befehl lautet so:...
@echo off
set /p name=Geben Sie Ihren Namen ein: 

Der Name ist dann in der Variable %name% gespeichert...

Woher ich das weiß:eigene Erfahrung
REasker 
Fragesteller
 07.01.2019, 18:05

Danke! Und wo finde ich dann die Variable? Also steht der Name dann in der Batch Datei drin?

0
JonaKilla12345  07.01.2019, 18:07
@REasker

Der Name ist in der Variable gespeichert... Du kannst z.B.

echo Dein Benutzername: %name%

machen, dann wird der Name ausgegeben.

Wird dann zB so angezeigt: Dein Benutzername: Jonas

0
Simon18066  20.05.2020, 12:46
@REasker

Wenn du in den Text schreibst: echo %%name%, wird es sobald du die Datei öffnest da stehen zB:

@echo off

:1

cls

set /p name= 

goto 2

:2

cls

echo Name:

echo %name%

pause >nul

0