-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpasswd.cmd
More file actions
35 lines (30 loc) · 914 Bytes
/
passwd.cmd
File metadata and controls
35 lines (30 loc) · 914 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@echo off
rem Usage: call passwd.cmd [length [mode]]
rem modes:
rem -n = numbers
rem -l = numbers + lowercase letters
rem -u = numbers + lowercase letters + uppercase letters
rem -s = numbers + lowercase letters + uppercase letters + special chars
set "length=%~1"
if "%length%"=="" set "length=32"
set "mode=70"
if "%~2"=="-n" set "mode=10"
if "%~2"=="-l" set "mode=36"
if "%~2"=="-u" set "mode=62"
if "%~2"=="-s" set "mode=70"
call :passwd %length% %mode%
rem Function
goto :eof
:passwd
setlocal
set /a cnt=%1
set /a mode=%2
set "chars=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.,:;!$"
:pwdloop
set /a rnd=%random%%%%mode%
call set "rnd=%%chars:~%rnd%,1%%"
set "return=%return%%rnd%"
set /a cnt-=1
if %cnt% gtr 0 goto :pwdloop
endlocal & set "passwd=%return%"
goto :eof