我正在尝试制作一个程序,使一系列随机字母和数字,大写和小写。有没有办法可以让我的代码成为可能?
@echo off
title random password gen
:Start
cls && set choice=0
echo (type 0 to exit)
echo.
echo 1 Random Password
echo 5 Random Passwords
echo 10 Random Passwords
set /p input= quantity:
if %input%==0 exit
if %input%==1 set /a choice=%choice%+1 && goto a
if %input%==2 goto set /a choice=%choice%+5 && goto a
if %input%==3 goto set /a choice=%choice%+10 && goto a
goto start
:a
cls
if %choice%==1 echo your password is %random%
if %choice%==5 echo your 5 passwords are %random%, %random%, %random%, %random%, %random%.
if %choice%==10 echo your 10 passwords are %random%, %random%, %random%, %random%, %random%,%random%, %random%, %random%, %random%, %random%.
pause
echo press any key to continue to menu... && pause nul> && goto menu
答案 0 :(得分:0)
&&
的条件执行。至
在一行上有两个命令只使用一个&
以下批次将生成随机名称/密码
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set "Chars=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
:: get one char from the first 26(Uppercase) and append to var Name
Call :RandChar 26 Name
:: get 14 chars from all Chars and append to var Name
For /L %%A in (1,1,14) Do Call :RandChar 62 Name
Echo %Name%
Goto :Eof
:RandChar Range Var
Set /A Pnt=%Random% %% %1
Set %2=!%2!!Chars:~%Pnt%,1!
Goto :Eof
powerShell中的相同内容更简单:
$chars = [char[]]"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
$Password = [string](($chars[0..25]|Get-Random)+(($chars|Get-Random -Count 14) -join ""))