问题描述
我试图做一个简单的循环以仅使用ascii符号生成密码,我还试图从打印中排除空格,这就是我到目前为止所得到的
33 .. 126 | %{ " $([char]$_)" }
解决方法
如果您想从一组特定的字符生成密码,Get-Random
是您的朋友:
function New-Password
{
param(
[int]$Length = 18
)
$characterSet = 33..126 -as [char[]]
$password = ''
1..18 |% {
$password += $characterSet |Get-Random
}
return $password
}
我也在尝试排除空白
只要您不插入,就不必担心,在您要从中生成字符的范围内没有空格字符
,与@Mathias R. Jessen一起提供有用的答案。
您有空格,因为那是您要的。...
33 .. 126 | %{ " $([char]$_)" }
...请注意,双引号和美元符号之间的空格,相对于此
33 .. 126 | %{ "$([char]$_)" }
因此,单线也可以工作...
((33..126 | %{ "$([char]$_)" } | Get-Random -Count 18) -join '')
# Results
<#,KoC]^>=3'hIsnG_Ub
#>
Mathias R. Jessen的回答再次变得更加灵活。