Powershell打印所有ASCII字符

问题描述

我试图做一个简单的循环以仅使用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的回答再次变得更加灵活。