添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
豪情万千的皮带  ·  MongoDB ...·  1 年前    · 

cmdlet Get-Random 获取随机选择的数字。 如果将 对象的集合提交到 Get-Random ,它将从集合中获取一个或多个随机选择的对象。

如果没有参数或输入, Get-Random 命令将返回介于 0 (零) 和 [int32]::MaxValue 之间的随机选择的 32 位无符号整数。

可以使用 的参数 Get-Random 指定最小值和最大值、集合返回的对象数或种子编号。

此种子值用于当前命令和当前会话中的所有后续 Get-Random 命令,直到再次使用 SetSeed 或关闭会话。 无法将种子重置为其默认值。

故意设置种子会导致非随机、可重复的行为。 它只应在尝试重现行为时使用,例如调试或分析包含 Get-Random 命令的脚本时。 请注意,种子值可由同一会话中的其他代码设置,例如导入的模块。

示例 1:获取随机整数

此命令获取介于 0 (零) 和 Int32.MaxValue 之间的随机整数。

Get-Random
3951433

示例 2:获取介于 0 和 99 之间的随机整数

Get-Random -Maximum 100
	

示例 3:获取介于 -100 和 99 之间的随机整数

Get-Random -Minimum -100 -Maximum 100
	

示例 4:获取随机浮点数

此命令获取大于或等于 10.7 且小于 20.93 的随机浮点数。

Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887

示例 5:从数组获取随机整数

此命令将从指定的数组中获取一个随机选择的数字。

1, 2, 3, 5, 8, 13 | Get-Random
	

示例 6:从数组中获取多个随机整数

此命令从数组中按随机顺序获取三个随机选择的数字。

1, 2, 3, 5, 8, 13 | Get-Random -Count 3
	

示例 7:随机化整个集合

从 PowerShell 7.1 开始,可以使用 Shuffle 参数以随机顺序返回整个集合。

1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
	

示例 8:获取随机非数值

此命令将从非数值集合中返回一个随机值。

"red", "yellow", "blue" | Get-Random
yellow

示例 9:使用 SetSeed 参数

此示例显示了使用 SetSeed 参数的效果。

由于 SetSeed 生成非随机行为,因此它通常仅用于重现结果,例如在调试或分析脚本时。

# Commands with the default seed are pseudorandom
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
# Commands with the same seed are not random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
	

示例 10:获取随机文件

这些命令从本地计算机的驱动器中 C: 获取随机选择的 50 个文件示例。

$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50

示例 11:滚动公平骰子

此示例将公平模具滚动 1200 次,并计算结果。 第一个命令 ForEach-Object 重复从通过管道传递的数字 (1-6) 对 的调用 Get-Random 。 结果按其值使用 Group-Object 进行分组,并格式化为具有 的 Select-Object表。

1..1200 | ForEach-Object {
    1..6 | Get-Random
} | Group-Object | Select-Object Name,Count
Name Count
---- -----
1      206
2      199
3      196
4      226
5      185
6      188

示例 12:使用 Count 参数

现在可以使用 Count 参数,而无需通过管道将 对象传递给 Get-Random。 以下示例获取小于 10 的三个随机数。

Get-Random -Count 3 -Maximum 10
	

示例 13:将 InputObject 参数与空字符串或$null

在此示例中, InputObject 参数指定包含空字符串的数组, ('') 和 $null

Get-Random -InputObject @('a','',$null)

Get-Random 返回 a、空字符串或 $null。 空的 sting 显示为空白行,并 $null 返回到 PowerShell 提示符。

-Count

指定要返回的随机对象数。 默认值为 1。

与包含集合一起使用 InputObject 时:

  • 每个随机选择的项仅返回一次。
  • 如果 Count 的值超过集合中的对象数,则集合中的所有对象都按随机顺序返回。
  • -InputObject

    指定对象的集合。 Get-Random 从集合中以随机顺序获取随机选择的对象,最多获取 Count 指定的数量。 输入对象、一个包含这些对象的变量,或可获取这些对象的命令或表达式。 还可以通过管道将 对象的集合传递给 Get-Random

    从 PowerShell 7 开始, InputObject 参数接受可包含空字符串或 $null的数组。 数组可以在管道中向下发送,也可以作为 InputObject 参数值发送。

    Type:Object[] Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:False

    -Maximum

    指定随机数的最大值。 Get-Random 返回的值小于最大 (不等于) 。 输入整数、双精度浮点数或可转换为整数或双精度值的对象,例如数字字符串 (“100”) 。

    Maximum 值必须大于(不等于)Minimum 值。 如果 “最大值 ”或“ 最小值 ”是浮点数, Get-Random 则 返回随机选择的浮点数。

    在 64 位计算机上,如果 Minimum 值为 32 位整数,则 Maximum 的默认值为 Int32.MaxValue

    如果 Minimum 的值为双精度值 (浮点数) ,则 Maximum 的默认值为 Double.MaxValue。 否则,默认值为 Int32.MaxValue

    Type:Object Position:0 Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Minimum

    指定随机数的最小值。 输入整数、双精度浮点数或可转换为整数或双精度值的对象,例如数字字符串 (“100”) 。 默认值为 0(零)。

    Minimum 值必须小于(不等于)Maximum 值。 如果 “最大值 ”或“ 最小值 ”是浮点数, Get-Random 则 返回随机选择的浮点数。

    Type:Object Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -SetSeed

    为随机数生成程序指定种子值。 使用 SetSeed 时,cmdlet 会生成伪随机数,这在加密上不安全。

    设置种子会导致非随机行为。 它仅应在尝试重现行为时使用,例如调试或分析包含 Get-Random 命令的脚本时。

    此种子值用于当前命令和当前会话中的所有后续 Get-Random 命令,直到再次使用 SetSeed 或关闭会话。 无法将种子重置为其默认值。

    从 Windows PowerShell 3.0 开始, Get-Random 支持 64 位整数。 在 Windows PowerShell 2.0 中,所有值都转换为 System.Int32

    从 PowerShell 7 开始,RandomListItemParameterSet 参数集中的 InputObject 参数接受包含空字符串或 $null的数组。 在早期 PowerShell 版本中,只有 RandomNumberParameterSet 参数集中的 Maximum 参数接受空字符串或 $null