Batch Textfeld darf nicht leer sein
Hallo
Das ist mein Code ich will aber machen dass man bei username;vorname;nachname und bei passwort etwas eingegeben werden muss!
MFG Christian
Das ist mein Code ich will aber machen dass man bei username;vorname;nachname und bei passwort etwas eingegeben werden muss!
MFG Christian
@echo off
title REGISTRIEREN
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Benutzer
echo Registration!
echo Bitte keine Leerzeichen und Sondereichen verwenden!!
:start
set /p username=username:
goto prüfung
:weiter
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Benutzer
set /p vorname=vorname:
set /p nachname=nachname:
set /p passwort=passwort:
mkdir %vorname%_%nachname%-%username%
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Benutzer\%vorname%_%nachname%-%username%
goto ende
:prüfung
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Username
if exist %username%.txt goto existiert
goto weiter
:existiert
cls
echo username existiert bereits!
echo Bitte anderen wählen!
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Benutzer
pause
cls
goto start
:ende
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Benutzer
echo %vorname% > vorname.txt
echo %nachname% > nachname.txt
echo %username% > username.txt
echo %passwort% > passwort.txt
echo Du hast dich erfolgreich Registriert!
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Username
echo 0 > %username%.txt
pause
exit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 400497
Url: https://administrator.de/contentid/400497
Ausgedruckt am: 16.11.2024 um 16:11 Uhr
6 Kommentare
Neuester Kommentar
Einfach in einer Schleife prüfen ob die Variable definiert wurde. Falls nicht, lässt du die Schleife iterieren und somit die Eingabe wiederholen.
Proof of concept:
Grüße
Steffen
Proof of concept:
@echo off &setlocal
::Hauptprogramm
call :getinput vorname "Vorname: "
call :getinput nachname "Nachname: "
call :getinput passwort "Passwort: "
echo %vorname% %nachname% %passwort%
pause
exit /b
:: Subroutine
:getinput
set "%~1="
set /p "%~1=%~2"
if not defined %~1 goto getinput
exit /b
Grüße
Steffen
Hallo,
2 Ranbemerkungen
1. Nutze keien Umlaute in dein Skript. Je nach OS und Version und genutzter Editor kommen sonst Lustige sachen aber nicht das was eingegeben hast. Beispiel: Prüfunbg eingeben, aber Pr³fen sagt dein Skript.
2. In Pfade oder Dateinamen keine Leerstellen verwenden oder in Anführungszeichen klammern. Ein Leerzeichen ist für eine Batch ein gültiges Trennzeichen.
Gruß,
Peter
2 Ranbemerkungen
1. Nutze keien Umlaute in dein Skript. Je nach OS und Version und genutzter Editor kommen sonst Lustige sachen aber nicht das was eingegeben hast. Beispiel: Prüfunbg eingeben, aber Pr³fen sagt dein Skript.
2. In Pfade oder Dateinamen keine Leerstellen verwenden oder in Anführungszeichen klammern. Ein Leerzeichen ist für eine Batch ein gültiges Trennzeichen.
goto prüfung
cd C:\Users\Gertrude Domes\Desktop\Login\Datenbank\Username
Gruß,
Peter
Hallo,
Und da wo du nicht umgestellt hast bzw nicht darfst oder andere Software mit der Umstellung nicht klar kommen? Umlaute ist wie das verwenden von Französischen oder Spanische oder Chinesischen Sonderzeichen. Und nicht jedes OS und Software kommt damit klar. Ein NoGo.
https://www.robvanderwoude.com/for.php
Tutorial zur FOR-Schleife
Gruß,
Peter
Und da wo du nicht umgestellt hast bzw nicht darfst oder andere Software mit der Umstellung nicht klar kommen? Umlaute ist wie das verwenden von Französischen oder Spanische oder Chinesischen Sonderzeichen. Und nicht jedes OS und Software kommt damit klar. Ein NoGo.
PC namen kann ich nicht umstellen.
Du sollst auch keinen Benutzernamen ändern. Du sollst in deinen Code solche sachen mit Anführungszeichen umschliessen. Mehr nicht.Kannst du die Schleife gleich in meinem Code integrieren. Ich kenne mich null mit Schleifen aus.
https://www.fisibits.de/blog/2014/05/batch-grundlagen-schleifen/https://www.robvanderwoude.com/for.php
Tutorial zur FOR-Schleife
Gruß,
Peter
Kannst du
Kann ich, bringt dir aber keinen Lerneffekt. Code lesen, Code verstehen und selbst einbauen. Die Schleife ist nur das GOTO, das man hier ausnahmsweise mal benötigt, da Batch keine while-Schleifen kennt. Ansonsten sind GOTOs eine der böswilligsten sprachlichen Mittel die Batch zu bieten hat und du solltest sie meiden wie die Pest. Selbst so eine antiquierte und längst überholte Sprache wie Batch kann man mit Subroutinen zumindest prozedural schreiben. Dann bleibt das Script wenigstens halbwegs lesbar und wartbar. Anderenfalls weißt du irgendwann selbst nicht mehr welche verschlungenen Wege der Programmablauf nimmt. Überarbeite das mal bei deinem bisherigen Code.