Get-Random
取得隨機數,或從集合隨機選取物件。
語法
RandomNumberParameterSet (預設值)
Get-Random
[[-Maximum] <Object>]
[-SetSeed <Int32>]
[-Minimum <Object>]
[<CommonParameters>]
RandomListItemParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Count <Int32>]
[<CommonParameters>]
Description
Get-Random Cmdlet 會取得隨機選取的數位。 如果您將 物件的集合提交至 Get-Random,它會從集合中取得一或多個隨機選取的物件。
如果沒有參數或輸入,Get-Random 命令會傳回隨機選取的 32 位無符號整數,介於 0 (零) 和 Int32.MaxValue (0x7FFFFFFF,2,147,483,647)。
您可以使用 Get-Random 的參數來指定種子編號、最小值和最大值,以及從送出集合傳回的物件數目。
範例
範例 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.92 的隨機浮點數。
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:隨機化整個集合
此命令會以隨機順序傳回整個集合。
Count 參數的值是整數 MaxValue 靜態屬性。
若要以隨機順序傳回整個集合,請輸入大於或等於集合中物件數目的任何數位。
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
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
74
56
84
46
# 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
74
74
74
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
74
56
84
46
範例 10:取得隨機檔案
這些命令會從本機計算機的 C: 磁碟驅動器取得 50 個檔案的隨機選取範例。
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
範例 11:滾筒公平骰子
此範例會擲回 1200 次公平死亡,並計算結果。 第一個命令,For-EachObject 重複呼叫從管道傳送的數位 (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
參數
-Count
指定要傳回的隨機物件或數字數目。 預設值為 1。
與
參數屬性
| 類型: | Int32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
RandomListItemParameterSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
指定物件的集合。
Get-Random 會以隨機順序從集合隨機選取的物件,到 Count所指定的數位。 輸入物件、包含 物件的變數,或取得物件的命令或表達式。 您也可以使用管線將 物件的集合傳送至 Get-Random。
參數屬性
| 類型: | Object[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
RandomListItemParameterSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Maximum
指定隨機數的最大值。
Get-Random 傳回小於最大值的值(不相等)。 輸入整數、雙精確度浮點數,或可以轉換成整數或雙精度浮點數的物件,例如數值字串 (“100” )。
Maximum 的值必須大於 Minimum的值(不等於)。 如果 Maximum 或 Minimum 的值是浮點數,Get-Random 會傳回隨機選取的浮點數。
在 64 位電腦上,如果 Minimum 的值是 32 位整數,則 Maximum 的預設值 Int32.MaxValue。
如果 Minimum 的值是雙精度浮點數,則 Maximum 的預設值 Double.MaxValue。 否則,預設值為 Int32.MaxValue。
參數屬性
| 類型: | Object |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
RandomNumberParameterSet
| Position: | 0 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Minimum
指定隨機數的最小值。 輸入整數、雙精確度浮點數,或可以轉換成整數或雙精度浮點數的物件,例如數值字串 (“100” )。 預設值為 0 (零)。
Minimum 的值必須小於 (不等於) Maximum的值。 如果 Maximum 或 Minimum 的值是浮點數,Get-Random 會傳回隨機選取的浮點數。
參數屬性
| 類型: | Object |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
RandomNumberParameterSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-SetSeed
指定隨機數產生器的種子值。 此種子值會用於目前命令,以及目前會話中所有後續 Get-Random 命令,直到您再次使用 setSeed 或關閉工作階段 為止。 您無法將種子重設為預設值。
不需要 SetSeed 參數。 根據預設,Get-Random 會使用 RandomNumberGenerator() 方法來產生種子值。 因為 SetSeed 會導致非隨機行為,所以通常只有在嘗試重現行為時才會使用,例如偵錯或分析包含 Get-Random 命令的腳本。
參數屬性
| 類型: | Int32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
Object
您可以使用管線傳送一或多個物件。
Get-Random 從管道對象隨機選取值。
輸出
System.Int32, System.Int64, System.Double
Get-Random 會傳回整數或浮點數,或從送出集合隨機選取的物件。
備註
Get-Random 根據會話啟動時的系統時間時鐘,為每個會話設定默認種子。
從 Windows PowerShell 3.0 開始,Get-Random 支援 64 位整數。 在 Windows PowerShell 2.0 中,所有值都會轉換成 System.Int32。