取得隨機數字,或從集合中隨機選取物件。

語法

Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]

Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]

描述

Get-Random Cmdlet 會取得隨機選取的數字。如果將物件的集合送出給 Get-Random,它就會從集合取得一個或多個隨機選取的物件。

若沒有使用參數或輸入,"Get-Random" 命令就會傳回一個介於 0 (零) 到 Int32.MaxValue (即 0x7FFFFFFF,也就是 2,147,483,647) 之間的隨機選取的 32 位元、不帶正負號的整數。

您可以使用 Get-Random 參數指定種子號碼、最小和最大值,以及從送出的集合傳回的物件數目。

參數

-Count <int>

決定傳回的物件數目。預設為 1。如果 Count 的值超過集合中的物件數目,Get-Random 會以隨機順序傳回所有物件。

必要?

false

位置?

named

預設值

1

接受管線輸入?

false

接受萬用字元?

false

-InputObject <Object[]>

指定物件的集合。Get-Random 會從集合以隨機順序取得隨機選取的物件。請輸入物件、含有物件的變數或是可取得物件的命令或運算式。您也可經由管道將物件的集合輸出至 Get-Random。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByValue)

接受萬用字元?

false

-Maximum <Object>

指定亂數的最大值。Get-Random 會傳回小於 (不等於) 最大值的值。請輸入 32 位元整數或雙精度浮點數,或是輸入可轉換成整數或雙精度浮點數的物件,例如數值字串 ("100")。Maximum 的值必須大於 (不等於) Minimum 的值。

如果 Maximum 或 Minimum 的值為浮點數,Get-Random 會傳回隨機選取的浮點數。

如果 Minimum 的值為雙精度浮點數 (Double),Maximum 的預設值則為 Double.MaxValue,否則預設值為 Int32.MaxValue (2,147,483,647 或 0x7FFFFFFF)。

必要?

false

位置?

1

預設值

Int32.MaxValue

接受管線輸入?

false

接受萬用字元?

false

-Minimum <Object>

指定亂數的最小值。請輸入 32 位元整數或雙精度浮點數,或是輸入可轉換成整數或雙精度浮點數的物件,例如數值字串 ("100")。預設值為 0 (零)。

Minimum 的值必須小於 (不等於) Maximum 的值。如果 Maximum 或 Minimum 的值為浮點數,Get-Random 會傳回隨機選取的浮點數。

必要?

false

位置?

named

預設值

0

接受管線輸入?

false

接受萬用字元?

false

-SetSeed <int>

指定亂數產生器的種子值。這個種子值將一直用於目前的命令和目前工作階段中的所有後續 Get-Random 命令,直到您再次使用 SetSeed 或關閉工作階段為止。您無法將種子重設回預設值,這個值會因時而異。

SetSeed 參數不是必要的。根據預設,Get-Random 會以系統時鐘來產生種子值。通常只有在嘗試重新產生行為 (例如對包含 Get-Random 命令的指令碼進行偵錯或分析) 的情況下才使用 SetSeed,因為它會造成非隨機的行為。

必要?

false

位置?

named

預設值

System clock

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.Object

您可經由管道將一個或多個物件輸出至 Get-Random。Get-Random 會從管道物件隨機選取值。

輸出

System.Object

Get-Random 會傳回整數或浮點數,或是從送出的集合隨機選取的物件。

附註

當工作階段開始時,Get-Random 會根據系統時鐘設定每個工作階段的預設種子。

範例 1

C:\PS>get-random

3951433

描述
-----------
這個命令會取得一個介於 0 (零) 到 Int32.MaxValue 之間的隨機整數。






範例 2

C:\PS>get-random -maximum 100

47

描述
-----------
這個命令會取得一個介於 0 (零) 到 99 之間的隨機整數。






範例 3

C:\PS>get-random -minimum -100 -maximum 100

-56

描述
-----------
這個命令會取得一個介於 -100 到 99 之間的隨機整數。






範例 4

C:\PS>get-random -min 10.7 -max 20.93

18.08467273887

描述
-----------
這個命令會取得一個大於或等於 10.7 且小於 20.92 的隨機浮點數。






範例 5

C:\PS>get-random -input 1, 2, 3, 5, 8, 13

8

描述
-----------
這個命令會從指定的陣列取得隨機選取的數字。






範例 6

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3

3
1
13

描述
-----------
這個命令會從陣列以隨機順序取得三個隨機選取的數字。






範例 7

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)

2
3
5
1
8
13

描述
-----------
這個命令會以隨機順序傳回整個集合。Count 參數值是整數的 MaxValue 靜態屬性。

若要以隨機順序傳回整個集合,請輸入任何大於或等於集合中的物件數目的數字。






範例 8

C:\PS>get-random -input "red", "yellow", "blue"

yellow

描述
-----------
這個命令會從非數值集合傳回隨機值。






範例 9

C:\PS>get-process | get-random

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    144       4     2080        488    36     0.48   3164 wmiprvse

描述
-----------
這個命令會從電腦上的處理序集合取得隨機選取的處理序。






範例 10

C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}

描述
-----------
這個命令會以隨機順序在一連串的遠端電腦上執行命令。






範例 11

C:\PS>get-random -max 100 -setseed 23


# Commands with the default seed are pseudorandom
PS C:\ps-test> get-random -max 100
59
PS C:\ps-test> get-random -max 100
65
PS C:\ps-test> get-random -max 100
21

# Commands with the same seed are not random
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74

# SetSeed results in a repeatable series
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46

描述
-----------
這個範例示範 SetSeed 參數的使用效果。SetSeed 通常只用於重新產生結果 (例如對指令碼進行偵錯或分析的時候),因為它會造成非隨機的行為。






範例 12

C:\PS>$files = dir -path c:\* -recurse

C:\PS> $sample = $files | get-random -count 50

描述
-----------
這些命令會從本機電腦的 C : 磁碟機取得隨機抽選的 50 個檔案。






範例 13

C:\PS>get-random 10001

7600

描述
-----------
這個命令會取得一個小於 10001 的隨機整數。因為 Maximum 參數的位置為 1,所以當這個參數的值在命令中是第一個或唯一未具名的參數時,您就可以省略它的參數名稱。









目錄