Supportnet / Forum / BS-Sonstige
DOS Batch zur Passwortabfrage
Frage
Hallo Leute,
ich bin kein großer Programmieren muss aber irgendwie unter dos eine Passwortabfrage programmieren. Geht das vielleicht auch ganz einfach mit einer Batchdatei?
Da soll auf dem Bildschirm einfach erscheinen: "Bitte Passwort eingeben", dann gibt wer das passwort ein, drückt enter und das Script vergleicht die Eingabe mit dem Passwort was im Script selber oder in irgendeiner TXT stehen kann.
Also nichts großes und nichts super sicheres.
Wie mache ich das?
Rip(e)
Antwort 1 von ichbins2
Eine Batchdatei kann ich jederzeit mit Control-C abbrechen. Damit ist ein Passwortschutz ausgehebelt.
Das sagt zumindest meine Erinnerung, ist aber auch schon lange her.
Das sagt zumindest meine Erinnerung, ist aber auch schon lange her.
Antwort 2 von bb_dn
Da gab es doch den Befehl break on/off, um die Funktion Control+C zu sperren. Ich weiß allerdings nicht, ob das nur unter reinem DOS oder auch in den DOS-Boxen der Windowssysteme funktioniert.
Gruß
Bruno
Gruß
Bruno
Antwort 3 von Rip_e_
eigentlich egal denn ich benötige die Passwortabfrage ja um sicher zu stellen, dass nur die jenigen mit Passwort die Batchdatei ausführen können. wenn man strg+c drückt ist die Passwortabfrage zwar weg aber die batch auch beendet also alles im grünen Bereich.
Rip(e)
Rip(e)
Antwort 4 von manfred
Der Befehl heißt 'choice'.
abgeragt wird dann mit "if errorlevel=1 then... " usw. Mußt halt mal "choice /?" eingeben.
Gruß Manfred
abgeragt wird dann mit "if errorlevel=1 then... " usw. Mußt halt mal "choice /?" eingeben.
Gruß Manfred
Antwort 5 von manei
Hallo,
kommt darauf an, welches OS Du hast.
Unter W2K/XP kannst Du eine Eingabe mit
set /p x=
also z.B.
@echo off
cls
echo.
echo Bitte Passwort eingeben!!
echo.
set /p x=
if x'==' goto fehl
if not x'==passwort' goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
cls
kannst du eine Eingabe machen.
Bei Win9X-Systemen ist das nicht ganz so einfach, geht aber auch z.B. mit
@echo off
cls
for %%e in (md cd) do %%e @tmp@@
echo BATCH_INPUT___hhQX-PPP^XPPP D"HH0D40DF0De0Dgs>myinput.com
echo myinput.bat hoAX5@@PZYh@xX5@D3!r/P[VX,b,.PZh>>myinput.com
echo X3!X2DqP,{,{PYX4=0DqVX,j,.PZh@@X3!=set input>>myinput.com
echo.
echo Bitte Passwort eingeben!!
echo.
for %%e in ("myinput.com" "call myinput.bat") do %%e
if %input%'==' goto fehl
if not %input%'==passwort' goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
set input=
for %%e in (CD.. "deltree /y @tmp@@>nul") do %%e
cls
passwort muß natürlich durch das richtige Passwort ersetzt werden.
MfG maneich
kommt darauf an, welches OS Du hast.
Unter W2K/XP kannst Du eine Eingabe mit
set /p x=
also z.B.
@echo off
cls
echo.
echo Bitte Passwort eingeben!!
echo.
set /p x=
if x'==' goto fehl
if not x'==passwort' goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
cls
kannst du eine Eingabe machen.
Bei Win9X-Systemen ist das nicht ganz so einfach, geht aber auch z.B. mit
@echo off
cls
for %%e in (md cd) do %%e @tmp@@
echo BATCH_INPUT___hhQX-PPP^XPPP D"HH0D40DF0De0Dgs>myinput.com
echo myinput.bat hoAX5@@PZYh@xX5@D3!r/P[VX,b,.PZh>>myinput.com
echo X3!X2DqP,{,{PYX4=0DqVX,j,.PZh@@X3!=set input>>myinput.com
echo.
echo Bitte Passwort eingeben!!
echo.
for %%e in ("myinput.com" "call myinput.bat") do %%e
if %input%'==' goto fehl
if not %input%'==passwort' goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
set input=
for %%e in (CD.. "deltree /y @tmp@@>nul") do %%e
cls
passwort muß natürlich durch das richtige Passwort ersetzt werden.
MfG maneich
Antwort 6 von manfred
Poahheii
Respekt vor der Tipparbeit - oder doch bloß copy+paste?
Der Beitrag steht im Forum "DOS"
Gruß Manfred
Respekt vor der Tipparbeit - oder doch bloß copy+paste?
Der Beitrag steht im Forum "DOS"
Gruß Manfred
Antwort 7 von manei
Hallo,
nun ja, wenn es für reinen DOS-Betrieb ist, ist die zweite Batch für zuständig. Läuft sowohl im DOS als auch unter Win9X-Systemen.
@Manfred
Das sagt gar nichts, daß der Beitrag im Forum "DOS" steht. Hier werden sehr viele Fragen gestellt z.B. bzgl. Batchabläufen die aber unter Win9X- oder WinNT-Systemen laufen sollen.
MfG maneich
nun ja, wenn es für reinen DOS-Betrieb ist, ist die zweite Batch für zuständig. Läuft sowohl im DOS als auch unter Win9X-Systemen.
@Manfred
Das sagt gar nichts, daß der Beitrag im Forum "DOS" steht. Hier werden sehr viele Fragen gestellt z.B. bzgl. Batchabläufen die aber unter Win9X- oder WinNT-Systemen laufen sollen.
MfG maneich
Antwort 8 von Rip_e_
Danke manei das Script sieht sehr gut aus auch wenn ich noch keine Ahnung habe was diese Zeilen bedeuten:
echo BATCH_INPUT___hhQX-PPP^XPPP D"HH0D40DF0De0Dgs>myinput.com
echo myinput.bat hoAX5@@PZYh@xX5@D3!r/P[VX,b,.PZh>>myinput.com
echo X3!X2DqP,{,{PYX4=0DqVX,j,.PZh@@X3!=set input>>myinput.com
Aber ich denke es funktioniert auch, wenn ich das nicht weiß.
Es handelt sich übrigens um das DOS einer Windows 98 SE Startdiskette also 6.2 glaub ich.
Rip(e)
echo BATCH_INPUT___hhQX-PPP^XPPP D"HH0D40DF0De0Dgs>myinput.com
echo myinput.bat hoAX5@@PZYh@xX5@D3!r/P[VX,b,.PZh>>myinput.com
echo X3!X2DqP,{,{PYX4=0DqVX,j,.PZh@@X3!=set input>>myinput.com
Aber ich denke es funktioniert auch, wenn ich das nicht weiß.
Es handelt sich übrigens um das DOS einer Windows 98 SE Startdiskette also 6.2 glaub ich.
Rip(e)
Antwort 9 von manei
Hallo,
diese 3 Zeilen sind der Quellcode für eine .com-Datei die eine direkte Eingabe am Prompt ermöglicht, was normalerweise im DOS und bei Win9x-Systemen in einer Batch nicht möglich ist.
Das ganz wird in ein eigens dafür erstelltes Verzeichnis geschrieben, das am Ende samt Inhalt wieder gelöscht wird.
Hier ist noch eine zweite Variante und sogar noch etwas schneller:
@echo off
cls
if %2'==loop' goto %2
set ~t1=%temp%\tmp
echo XP,;P_,EP0Ex0Ez0Em3Em-ZBP(Eiu![j@_YQ2M@53#@CI~.8'uxCISZ[SC5.bM!C>%~t1%.com
%~t1%.com "%0 : loop >%~t1%.bat
echo.
echo Bitte Passwort eingeben und [Enter]
echo.
FC.EXE CON nul /LB1 /N |FIND "1:" >> %~t1%.bat
%~t1%.bat
:loop
if %4'==' goto fehl
if not %4'==passwort' goto fehl
[Befehl was gemacht werden soll]???????
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
echo.
pause
:end
del %~t1%.???>nul
set ~t1=
cls
MfG maneich
diese 3 Zeilen sind der Quellcode für eine .com-Datei die eine direkte Eingabe am Prompt ermöglicht, was normalerweise im DOS und bei Win9x-Systemen in einer Batch nicht möglich ist.
Das ganz wird in ein eigens dafür erstelltes Verzeichnis geschrieben, das am Ende samt Inhalt wieder gelöscht wird.
Hier ist noch eine zweite Variante und sogar noch etwas schneller:
@echo off
cls
if %2'==loop' goto %2
set ~t1=%temp%\tmp
echo XP,;P_,EP0Ex0Ez0Em3Em-ZBP(Eiu![j@_YQ2M@53#@CI~.8'uxCISZ[SC5.bM!C>%~t1%.com
%~t1%.com "%0 : loop >%~t1%.bat
echo.
echo Bitte Passwort eingeben und [Enter]
echo.
FC.EXE CON nul /LB1 /N |FIND "1:" >> %~t1%.bat
%~t1%.bat
:loop
if %4'==' goto fehl
if not %4'==passwort' goto fehl
[Befehl was gemacht werden soll]???????
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
echo.
pause
:end
del %~t1%.???>nul
set ~t1=
cls
MfG maneich
Antwort 10 von Rip_e_
Danke maneich
die erste batch für win98 hab ich heute schon getestet hat super funktioniert nur sieht man das Passwort was man eintippt auf dem Bildschirm aber da kümmere ich mich morgen drum, wenn ich dein neues Script ausprobiert habe.
Danke nochmals
Rip(e)
die erste batch für win98 hab ich heute schon getestet hat super funktioniert nur sieht man das Passwort was man eintippt auf dem Bildschirm aber da kümmere ich mich morgen drum, wenn ich dein neues Script ausprobiert habe.
Danke nochmals
Rip(e)
Antwort 11 von Zypresse
Halllo Manei,
wo und wie ändert man denn das Passwort in deinem Win9x-Script?
Danbke und schöne Grüße
wo und wie ändert man denn das Passwort in deinem Win9x-Script?
Danbke und schöne Grüße
Antwort 12 von manei
Hallo,
if not %4'==passwort' goto fehl
Anstatt dem Wort "passwort" schreibst Du Dein Passwort rein, das " ' " Zeichen hintendran muß bleiben.
MfG maneich
if not %4'==passwort' goto fehl
Anstatt dem Wort "passwort" schreibst Du Dein Passwort rein, das " ' " Zeichen hintendran muß bleiben.
MfG maneich
Antwort 13 von manei
Hallo,
sehe gerade, habe hier 2 Batches eingestellt.
für die erste ist es dann die Zeile
if not %input%'==passwort' goto fehl
Hier dann auch "passwort" gem. obigen Ausführungen ändern.
MfG maneich
sehe gerade, habe hier 2 Batches eingestellt.
für die erste ist es dann die Zeile
if not %input%'==passwort' goto fehl
Hier dann auch "passwort" gem. obigen Ausführungen ändern.
MfG maneich
Antwort 14 von Dark
Hi, brauche eine Passwortabfrage im dos unter xp.
Habe schon einiges ausprobiert aber es geht leider nicht.
Kann mir Bitte jemand helfen??
mfg Dark
------------------------------------------------------------------------
@echo off
cls
echo.
echo Bitte Passwort eingeben!!
echo.
set /p x=
if x´==´ goto fehl
if not x´==passwort´ goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
cls
habe ich schon ausprobiert........ geht leider nicht........
keine ahnung wieso....... bitte brauche hilfe..........
DANKE
Habe schon einiges ausprobiert aber es geht leider nicht.
Kann mir Bitte jemand helfen??
mfg Dark
------------------------------------------------------------------------
@echo off
cls
echo.
echo Bitte Passwort eingeben!!
echo.
set /p x=
if x´==´ goto fehl
if not x´==passwort´ goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
cls
habe ich schon ausprobiert........ geht leider nicht........
keine ahnung wieso....... bitte brauche hilfe..........
DANKE
Antwort 15 von AndyIT
Hallo Dark,
dein Problem ist, dass du die Variable bei deinen Abfragen nicht ausgiebst.
------------------------------------------------------------------------
@echo off
cls
echo.
echo Bitte Passwort eingeben!!
echo.
set /p x=
if %x%´==´ goto fehl
if not %x%´==passwort´ goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
cls
du musst nur dein 'x' durch '%x%' ersetzen,
dann klappt das.
dein Problem ist, dass du die Variable bei deinen Abfragen nicht ausgiebst.
------------------------------------------------------------------------
@echo off
cls
echo.
echo Bitte Passwort eingeben!!
echo.
set /p x=
if %x%´==´ goto fehl
if not %x%´==passwort´ goto fehl
Befehl was gemacht werden soll
goto end
:fehl
echo.
echo falsche Passworteingabe
echo die Batch wird beendet
pause
echo.
:end
cls
du musst nur dein 'x' durch '%x%' ersetzen,
dann klappt das.
Antwort 16 von conrado
*Threadedit* 09:51:49, 18.08.2008
Admininfo: Führ bitte fremde Threads nicht fort indem du eigene Anfragen anhängst.
Die User werden es dir danken. Siehe FAQ 2, #7

