我的New-RandomPassword函数突然不起作用

m_lloyd

为了娱乐,我决定创建一个函数,该函数将根据用户决定的数量生成一些随机密码。我正在使用Begin和Process块来运行脚本。Begin块具有$ characterPool变量,其中字母数字和特殊字符为潜在字符。Process块询问用户需要多少个密码,并创建那么多随机的12个字符的密码。当我第一次创建函数时,它工作正常。现在,无论我请求多少个密码,都只会创建两个,然后重新提出问题。然后,使用空字符串敲击Enter或添加另一个数字将导致输出一个密码。

Begin
    {
        $characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
    }
    Process
    {
        [pscustomobject]@{
            Password = -join ($characterPool | Get-Random -Count 12)
            }
        $counter = Read-Host -Prompt "How many passwords do ya want, buddy?"
        1..$counter | New-RandomPassword
    }

我希望这会生成我要求的密码数量。没有错误生成,它只显示如下:

Begin
    {
        $characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
    }
    Process
    {
        [pscustomobject]@{
            Password = -join ($characterPool | Get-Random -Count 12)
            }
        $counter = Read-Host -Prompt "How many passwords do ya want, buddy?"
        1..$counter | New-RandomPassword
    }

How many passwords do ya want, buddy?: 5
Password    
--------    
1z@p8Jgl52yU
1#K8z2@iA!&o
How many passwords do ya want, buddy?: 
Pw!C#d2xTjMu
How many passwords do ya want, buddy?: 
fo*Oca9HbRQr
How many passwords do ya want, buddy?: 
omzCRpwqdOfM
How many passwords do ya want, buddy?: 
u5lMN!kjhzfe
How many passwords do ya want, buddy?: 6
vLaxHq945K$D
How many passwords do ya want, buddy?:
Mathias R. Jessen

Read-Host提示功能移至开始并将密码生成逻辑移至循环中:

function New-RandomPassword {
    param()

    [int]$counter = Read-Host -Prompt "How many passwords do ya want, buddy?"
    $characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
    $i = 0;
    while($i++ -lt $counter)
    {
        [pscustomobject]@{
            Password = -join ($characterPool | Get-Random -Count 12)
        }
    }
}

这样,您将不必递归调用该函数。


我个人将$counter变量转换为参数,然后在内部调用 的脚本中提示用户New-RandomPassword

function New-RandomPassword {
    param(
        [ValidateRange(1,500)]
        [int]$Count
    )

    $characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
    $i = 0;
    while($i++ -lt $count)
    {
        [pscustomobject]@{
            Password = -join ($characterPool | Get-Random -Count 12)
        }
    }
}

正如mklement0指出的那样,您还可以为Read-Host调用分配一个表达式作为参数的默认值:

param(
    [ValidateRange(1,500)]
    [int]$Count = $(Read-Host 'How many passwords do ya want, buddy?')
)

我个人认为这是一种反模式,宁愿坚持默认1或标记参数Mandatory

# If the caller omits the argument, 1 password is returned
param(
    [ValidateRange(1,500)]
    [int]$Count = 1
)

要么

# Caller _must_ supply a parameter argument (the default console host will prompt the user if not, but depends on the host application)
param(
    [Parameter(Mandatory = $true)]
    [ValidateRange(1,500)]
    [int]$Count
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用我的Javascript函数不起作用

来自分类Dev

Lapply 函数对我的矩阵不起作用

来自分类Dev

函数 row.add() 在我的函数中不起作用:

来自分类Dev

我的无线设备突然被硬件开关禁用,BIOS,rfkill,fn + f8不起作用

来自分类Dev

我的无线设备突然被硬件开关禁用,BIOS,rfkill,fn + f8不起作用

来自分类Dev

jQuery内容替换在我的函数中不起作用

来自分类Dev

我的redirect()函数在使用CodeIgniter时不起作用

来自分类Dev

为什么我的mouseOver函数不起作用?

来自分类Dev

为什么我的函数调用不起作用?

来自分类Dev

为什么“ $ _COOKIE”导致我的fwrite()函数不起作用?

来自分类Dev

为什么函数'x'.write(frame)对我不起作用?

来自分类Dev

用R向量化我的函数不起作用

来自分类Dev

为什么我的def函数在Python中不起作用?

来自分类Dev

用dplyr :: select评估在我的函数中不起作用

来自分类Dev

为什么我的deleteMessage函数不起作用?

来自分类Dev

为什么我的jquery函数调用不起作用?

来自分类Dev

为什么我的DeleteNode()函数不起作用?

来自分类Dev

我的mqsql_query函数不起作用

来自分类Dev

为什么我的%d函数不起作用?

来自分类Dev

如果函数在我的程序上不起作用

来自分类Dev

我的comment_func_bar函数不起作用

来自分类Dev

为什么onLocationChanged函数对我不起作用?

来自分类Dev

为什么我的append函数不起作用?

来自分类Dev

为什么我的函数的此签名不起作用?

来自分类Dev

为什么“ $ _COOKIE”导致我的fwrite()函数不起作用?

来自分类Dev

jQuery .append在我的函数中不起作用

来自分类Dev

在我的情况下,ClearInterval函数不起作用

来自分类Dev

为什么我的transposeMatrix函数不起作用?

来自分类Dev

我的 awk 用户函数在 bash 脚本中不起作用

Related 相关文章

  1. 1

    调用我的Javascript函数不起作用

  2. 2

    Lapply 函数对我的矩阵不起作用

  3. 3

    函数 row.add() 在我的函数中不起作用:

  4. 4

    我的无线设备突然被硬件开关禁用,BIOS,rfkill,fn + f8不起作用

  5. 5

    我的无线设备突然被硬件开关禁用,BIOS,rfkill,fn + f8不起作用

  6. 6

    jQuery内容替换在我的函数中不起作用

  7. 7

    我的redirect()函数在使用CodeIgniter时不起作用

  8. 8

    为什么我的mouseOver函数不起作用?

  9. 9

    为什么我的函数调用不起作用?

  10. 10

    为什么“ $ _COOKIE”导致我的fwrite()函数不起作用?

  11. 11

    为什么函数'x'.write(frame)对我不起作用?

  12. 12

    用R向量化我的函数不起作用

  13. 13

    为什么我的def函数在Python中不起作用?

  14. 14

    用dplyr :: select评估在我的函数中不起作用

  15. 15

    为什么我的deleteMessage函数不起作用?

  16. 16

    为什么我的jquery函数调用不起作用?

  17. 17

    为什么我的DeleteNode()函数不起作用?

  18. 18

    我的mqsql_query函数不起作用

  19. 19

    为什么我的%d函数不起作用?

  20. 20

    如果函数在我的程序上不起作用

  21. 21

    我的comment_func_bar函数不起作用

  22. 22

    为什么onLocationChanged函数对我不起作用?

  23. 23

    为什么我的append函数不起作用?

  24. 24

    为什么我的函数的此签名不起作用?

  25. 25

    为什么“ $ _COOKIE”导致我的fwrite()函数不起作用?

  26. 26

    jQuery .append在我的函数中不起作用

  27. 27

    在我的情况下,ClearInterval函数不起作用

  28. 28

    为什么我的transposeMatrix函数不起作用?

  29. 29

    我的 awk 用户函数在 bash 脚本中不起作用

热门标签

归档