Batch Passwortabfrage mit *******?

3 Antworten

Jein

Standardmäßig gibt es keine Möglichkeit

Man muss schon richtig Tief in die Trickkiste greifen um dergleichen mit purem Batch hinzubekommen:

@echo off
 rem Macro zum enlesen einzelner Zeichen von der Tastatur
set "getKey=for /f "tokens=2 delims=] skip=1" %%. in ('replace.exe ? . /u /w ^|find /n /v ""') do (set "getKey.Key=%%~.")"

<nul set /p "=Bitte Passwort eigeben:"
set "PasswortInput="
:loop
  %getKey% &rem Macro aufrufen
  if "%getKey.Key%"=="" goto :exitLoop &rem Bei Enter Loop velassen
  set "PasswortInput=%PasswortInput%%getKey.Key%" &rem Zeichen dem String hinzufügen
  <nul set /p "=*" &rem Stenchen auf den Bildschirm schreiben ohne neue Zeile!)
  goto :loop
:exitLoop
echo: &rem den Zeilenvorschub "nachholen"
echo Du hast "%PasswortInput%" eingegeben!
pause

Natürlich kannst Du die Entgegennahme des Passworts auch auch dem Read-host -Cmdlet von Powerschell überlassen.. Nur schade, da ich das schöne verschlüsselte Passwort gleich wieder in Plaintext umwandeln muss, damit es in Batch benutzt werden kann.

for /f "delims=" %%a in ('powershell "Read-Host -AsSecureString|foreach{(New-Object PSCredential 'N/A', $_).GetNetworkCredential().Password}"') do (
 set "PasswortInput=%%a"
)
echo Du hast "%PasswortInput%" eingegeben!

Kleiner Rat von mir, was immer was Du da zauberst Batch ist nicht wirklich geeignet um irgendwelche Passwörter sicher zu handhaben.

Steck nicht mehr zuviel Energie in Batch. Powershell kann wesentlich mehr als Batch und ist einfacher zu handhaben.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Kurz und auf den Punkt: Nein.

Erzesel  22.08.2023, 22:35

sach doch nich immer nein...😅

1
Tilo2300  23.08.2023, 13:11
@Erzesel

Früher hab ich ähnliche Fragen differenzierter beantwortet mit "nein, es sei denn, man behilft sich mit a, b, c und d-f, muss dann aber beachten, dass g, h, i ... Und am Ende ist es immer noch Humbug, weil j, k, l-m. Also lass es besser sein!"

Als Antwort kommt dann grundsätzlich: "Also geht es ja. Prima! Zeig mir wie!"

Daher fasse ich mich lieber kurz. 😉

1

Das klingt für mich ziemlich unsinnig. Eine Batch kann man jederzeit abbrechen.