dipps
Goto Top

Passwort generieren

Passwort generieren

Hallo ich möchte gerne per Batchscript ein Passwort generieren. Von Biber habe ich schon ein Teil des Scriptes bekommen.

Ich habe es noch ein wenig ergänzt:
@echo off
CLS
@set text="abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"  

FOR /L %%u IN (1,1,6) DO CALL :setz

:setz
@set /a x=%random% % 60
@Set Zufallszeichen=%text:~!x!,1%
@Set pass= %pass%+%Zufallszeichen%

echo %pass%

Pause
Doch er gibt mir keine Zeichen aus.

Content-ID: 68133

Url: https://administrator.de/forum/passwort-generieren-68133.html

Ausgedruckt am: 16.02.2025 um 21:02 Uhr

MRosoft
MRosoft 07.09.2007 um 14:39:51 Uhr
Goto Top
Kannst Du mal bitte den Code von biber Posten ich bekomme immer nur Fehlender Operator und ich denke das, dass !x! gegen %x% getauscht werden müsste.
Dipps
Dipps 07.09.2007 um 15:00:14 Uhr
Goto Top
Also von biber

set "text=abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set /a x=%random% % 60
Set Zufallszeichen=%text:~!x!,1%


Aber ich habe meinen Code jetzt schon soweit

@echo off & setlocal
CLS
set "text=abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

FOR /L %%u IN (1,1,6) DO CALL :setz
goto en


:setz

@set /a x=%random% / 600
echo %x%
Set Zufallszeichen=%text:~ $x%,1%


@set pass=%pass%%Zufallszeichen%

echo %pass%

Pause
Biber
Biber 07.09.2007 um 16:31:42 Uhr
Goto Top
Sorry, ich war unterwegs.

Hier mal ein Aus-der-Hüfte-Korrekturversuch:
:: ----snipp RandowPW.bat
@echo off & setlocal enableDelayedExpansion
:: CLS
Set "Pass="  
set text="abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"  

FOR /L %%u IN (1,1,6) DO CALL :setz
echo %pass%
goto :eof
~~~~~~~~~~~end of Batch~~~~
:setz
set /a x=%random% %% 62
Set "Zufallszeichen=!text:~%x%,1!"  
Set "pass=%pass%%Zufallszeichen%"  
:: ----snapp RandowPW.bat
Demo (20 Aufrufe am CMD-Prompt):
>for /L %i in (1,1,20) do @e:\administrator\RandomPw.bat
gfR7vn
zaAYXu
4d"kxg  
sEaEkW
sQW4he
cgoO63
Kv"9Hb  
QzgxdK
Ho7fkL
dF4ytq
prLY68
GhfD8G
wqU"DS  
epN2MR
qfmpID
kGBzuF
aa9gr8
TDdXhv
JiHxh4
wcIAk9
[Getestet, aber nicht allzu ernsthaft ---ist nach wie vor Skizze, keine PROD-Version!]

Anmerkung: die Zeile Set "Pass=" ist natürlich eigentlich überflüssig.
Außer wenn durch Zufall schon eine gleichnamige nicht-lokale Variable existieren würde.

Grüße
Biber
Biber
Biber 10.09.2007 um 07:35:13 Uhr
Goto Top
Nachtrag:

Auch noch so kleine Schnipsel können ausgesprochen dämliche Flüchtigkeitsfehler enthalten...

Ein Ändern der Zeile Set text="abc....." in Set "text=abc...", also das Rücken des ersten Anführungszeichens vor den Variablennamen bewirkt:
>for /L %i in (1,1,20) do @e:\administrator\RandomPw.bat
MIXaxM
eroCoX
PCAxFh
DZmA70
ruSuls
ZpMKTf
JnTsCr
0gWNSh
Gnbe8G
42WXze
54cbyY
yw8aHW
zK6ZPm
ukgsrH
Mg9MCv
qloOXG
myHiP9
q8P4KC
9PWdhY
HH89GZ

Grüße
Biber
Dipps
Dipps 10.09.2007 um 09:37:09 Uhr
Goto Top
DAnke jetzt geht es aber wie kann ich die variable zurück über geben in die andere batchdatei also nicht das ich es ausgegeben bekomme sondern das ich es zB als %pass% bekomme
Biber
Biber 10.09.2007 um 09:47:35 Uhr
Goto Top
Moin Dipps,

Dazu lässt Du die RandomPW.bat so wie sie ist und lenkst die Echo-Ausgabe um in eine Variable.
....
For /F %%i in ('ggfMitPfad\RandomPW.bat') do set "myNewPassword=%%i"  
....

Oder mach alles in einer Batchdatei - die RandomPW-Funktionalität kann doch auch als Unterroutine in Deiner WhatEver.bat stehen.

Grüße
Biber
P.S. Hier ---->[.,,,,,...;-]<----- lass ich noch ein paar so genannte Interpunktionszeichen für Dich da.
Kopier Dir einfach, was Du brauchst. face-wink
Dipps
Dipps 10.09.2007 um 10:11:41 Uhr
Goto Top
@echo off & setlocal
for /f "tokens=1,* delims=," %%i in (%namelg%) do call :ProcessLine "%%~i" "%%~j"
Goto :fertig

:ProcessLine Para1=Name, Para2=Vorname

For /F %%z in ('passwort.exe') do set pass=%%z
Set "name=%~1"
Set "vorname=%~2"
Echo %~1,%~2,zug%name:~0,4%%vorname:~0,3%,%pass%
Echo %~1,%~2,zug%name:~0,4%%vorname:~0,3%,%pass% >> %neuername%.txt

So habe ich es aber er nimmt die pass Variable nicht
Dipps
Dipps 10.09.2007 um 11:36:36 Uhr
Goto Top
Ist schon Okay habe den Fehler gefunden warum es nicht ging und nochmals danke für deine hilfe