Frage von Cypheria, 42

Batch: Passworteingabe mit Timer?

Hallo. Ist es möglich eine Batch Passworteingabe mit einem Timer zu versehen?

Beispiel:

set /p a=Bitte Passwort eingeben: 

if %a%==5555 goto richtig 

if not %a%==5555 goto falsch 

{{"Timerablauf" goto falsch}}

:richtig 

echo Passwort akzeptiert. 

pause 

exit

:falsch 

echo Passwot falsch! 

timeout /t 2 >NUL 

shutdown /s /f /t 10 /c  exit

Die Stelle in {{ }} bitte als Code formulieren. Danke! :)

Antwort
von TheCrafter5455, 3

Das ist eigentlich einfach. :D
Ich helfe mal kurz.

Du schreibst 2 Batchdateien.


Mit einer machst du die Passwort abfrage.
Mit der Anderen prüfst du, ob in (z.B. %userprofile%\Passwort\pwright.sys) dem Pfad die Datei drin ist.

Wenn du mit der Passwort abfrage richtig bist, soll die Datei in diesem Pfad dann die pwright.sys schreiben (%userprofile%\Passwort\pwright.sys)

PW Abfrage:
:1
set /p a=Bestätige Passwort:
if not %a%==XYZ123 goto false
Echo. > %userprofile%\Passwort\pwright.sys

(Was immer du auch hier schreiben willst, wenn es richtig ist)
...

:false
cls
Echo Falsches Passwort!
goto 1



Für die andere Datei:

timeout 5 /nobreak
if exist %userprofile%\Passwort\pwright.sys goto found
timeout 5 /nobreak
if exist %userprofile%\Passwort\pwright.sys goto found

....
(So lange du es haben willst, sagen wir 60 Sekunden insgesamt) Und hier schreibst du hin, was passieren soll, wenn das Passwort nach 60 Sekunden immer noch nicht eingegeben wurde.

z.B.
shutdown /f
exit

:found
del %userprofile%\Passwort\pwright.sys /q
exit

Weil du bestimmt nicht möchtest, dass man die "Check" Datei einfach schließt, schreiben wir noch eine .vbs Datei (Ich möchte dass das Fenster von der "Check" Datei nicht sichtbar ist)

Die VBS Datei:

set shell=createobject("wscript.shell")
shell.run "[PFAD ZU CHECK DATEI]",0 <---- Fenster wird nicht angezeigt
shell.run "[Pfad zur Passwort Abfrage]" <---- Fenster wird angezeigt


Hoffe konnte helfen :) Ist etwas kompliziert, aber wollte mich nicht zurückhalten.

Antwort
von gerlochi, 22

In Batch wird sowas schwer, da Batch grenzen hat, die njr schwer sind zu durchbrechen. Für den Einstieg, ok, aber wenn du nacher soetwas machen willst, dann mach es mit einer anderen Script-/Programmiersprache, wie : Python(sehr einfach), Perl, Ruby, C, C++, C#, VB, QBasic, FreeBasic(läuft noch ganz gut, auf win und lin), Java, usw.

Schau dir ein paar Sprachen an, und lehrne die, die dir am meisten zusagt. Dann kannst du soetwas in diesem Forum fragen, denn mit Batch kommen die Grenzen die du z.B. in Python nicht hast, oder C, Java, ...

Ich hoffe du hast verstanden was ich dir sagen wollte, MfG gerlochi :-)

Antwort
von 3v1lH4x0R, 12

ping hat irgendeinen Parameter der es erlaubt eine Zeit anzugeben. Dies kann als timer verwendet werden.
Batch hat auf jeden Fall viele Grenzen. Außerdem bringt es dir nix, dass Passwort im Klartext abzuspeichern. Rechtsklick -> Bearbeiten und der Nutzer kennt es. Benutz lieber eine andere Sprache und hashe das Passwort (mal eben Googlen bitte).

Antwort
von Cypheria, 30

Bitte daran denken das der Code RICHTIG und GEORDNET/SAUBER untereinander geschrieben ist. :)

Antwort
von Borgler94, 12

wenn du willst schreib ich dir ein kleines Java Passwortabfrage Programm mit entw. grafischer oder Consoleneingabe

Antwort
von maximilianus7, 18

asynchrone verarbeitung ist für batch-processing nicht vorgesehen.

in powershell gibt es sowas, weiß aber nicht, ob dir das was hilft.

Keine passende Antwort gefunden?

Fragen Sie die Community