[玩转系统] Get-Random (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:06:37 浏览:14 分类:玩电脑
Get-Random (Microsoft.PowerShell.Utility)
Get-Random
模块 :Microsoft.PowerShell.Utility获取随机数,或从集合中随机选择对象。
句法
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
描述
Get-Random
cmdlet 获取随机选择的数字。如果您向 Get-Random
提交一组对象,它会从该集合中随机选择一个或多个对象。
如果没有参数或输入,Get-Random
命令会返回 0(零)和 [int32]::MaxValue
之间随机选择的 32 位无符号整数。
您可以使用Get-Random
的参数来指定最小值和最大值、从集合返回的对象数或种子数。
警告
Get-Random
不能确保加密安全的随机性。种子值用于当前命令以及当前会话中的所有后续 Get-Random
命令,直到您再次使用 SetSeed 或关闭会话。您无法将种子重置为其默认值。
故意设置种子会导致非随机、可重复的行为。仅当尝试重现行为时才应使用它,例如调试或分析包含 Get-Random 命令的脚本时。请注意,种子值可以由同一会话中的其他代码(例如导入的模块)设置。
PowerShell 7.4 包含 Get-SecureRandom,可确保加密安全的随机性。
示例
示例 1:获取随机整数
此命令获取 0(零)和 Int32.MaxValue 之间的随机整数。
Get-Random
3951433
示例 2:获取 0 到 99 之间的随机整数
Get-Random -Maximum 100
47
示例 3:获取 -100 到 99 之间的随机整数
Get-Random -Minimum -100 -Maximum 100
56
示例 4:获取随机浮点数
此命令获取大于或等于 10.7 且小于 20.93 的随机浮点数。
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
示例 5:从数组中获取随机整数
该命令从指定数组中随机选择一个数字。
1, 2, 3, 5, 8, 13 | Get-Random
8
示例 6:从数组中获取多个随机整数
此命令从数组中按随机顺序获取三个随机选择的数字。
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
示例 7:随机化整个集合
从 PowerShell 7.1 开始,您可以使用 Shuffle 参数以随机顺序返回整个集合。
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
示例 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
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
示例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
9
0
8
示例 13:使用带有空字符串或 $null 的 InputObject 参数
在此示例中,InputObject 参数指定一个包含空字符串 (''
) 和 $null
的数组。
Get-Random -InputObject @('a','',$null)
Get-Random
返回 a
、空字符串或 $null
。空字符串显示为空行,并且 $null
返回 PowerShell 提示符。
参数
-Count
指定要返回的随机对象的数量。默认值为 1。
与包含集合的 InputObject
一起使用时:
- 每个随机选择的项目仅返回一次。
- 如果Count的值超过集合中的对象数量,则按随机顺序返回集合中的所有对象。
整数32
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-InputObject
指定对象的集合。 Get-Random
从集合中以随机顺序随机选择对象,最多达到 Count 指定的数量。输入对象、包含对象的变量或者获取对象的命令或表达式。您还可以通过管道将对象集合传递给Get-Random
。
从 PowerShell 7 开始,InputObject 参数接受可包含空字符串或 $null
的数组。该数组可以沿着管道发送或作为 InputObject 参数值发送。
Object[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Maximum
指定随机数的最大值。 Get-Random
返回一个小于最大值(不等于)的值。输入整数、双精度浮点数或可转换为整数或双精度的对象,例如数字字符串 (“100”)。
最大值的值必须大于(不等于)最小值的值。如果Maximum或Minimum的值为浮点数,则Get-Random
返回随机选择的浮点数。
在 64 位计算机上,如果 Minimum 的值为 32 位整数,则 Maximum 的默认值为 Int32.MaxValue。
如果Minimum的值为double(浮点数),则Maximum的默认值为Double.MaxValue。否则,默认值为Int32.MaxValue。
类型 :目的
位置:0
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Minimum
指定随机数的最小值。输入整数、双精度浮点数或可转换为整数或双精度的对象,例如数字字符串 (“100”)。默认值为 0(零)。
最小值的值必须小于(不等于)最大值的值。如果Maximum或Minimum的值为浮点数,则Get-Random
返回随机选择的浮点数。
目的
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-SetSeed
指定随机数生成器的种子值。当您使用 SetSeed 时,cmdlet 会生成伪随机数,这在加密上并不安全。
警告
设置种子会导致非随机行为。仅当尝试重现行为时才应使用它,例如调试或分析包含 Get-Random 命令的脚本时。
此种子值用于当前命令以及当前会话中的所有后续 Get-Random
命令,直到您再次使用 SetSeed 或关闭会话。您无法将种子重置为其默认值。
可空[Int32]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Shuffle
以随机顺序返回整个集合。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
输入
对象
您可以通过管道将任何对象传递给此 cmdlet。它从管道对象中随机选择值。
输出
Int32
Int64
双
PSObject
此 cmdlet 返回整数或浮点数,或者从提交的集合中随机选择的对象。
笔记
Get-Random
并不总是返回与输入值相同的数据类型。下表显示了每种数字输入类型的输出类型。
双倍的
Byte双倍的
Int16双倍的
UInt16双倍的
Int32整数32
UInt32双倍的
Int64整型64
UInt64双倍的
Double双倍的
Single双倍的
从 Windows PowerShell 3.0 开始,Get-Random
支持 64 位整数。在 Windows PowerShell 2.0 中,所有值都转换为 System.Int32。
从 PowerShell 7 开始,RandomListItemParameterSet 参数集中的 InputObject 参数接受包含空字符串或 $null
的数组。在早期的 PowerShell 版本中,只有 RandomNumberParameterSet 参数集中的 Maximum 参数接受空字符串或 $null
。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag