다음을 통해 공유


Get-Random

난수를 가져오거나 컬렉션에서 개체를 임의로 선택합니다.

구문

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 값보다 커야 하며 Minimum 값과 같아서는 안 됩니다.

Maximum 또는 Minimum 값이 부동 소수점 수이면 Get-Random은 임의로 선택된 부동 소수점 수를 반환합니다.

Minimum 값이 배정밀도 수(부동 소수점 수)인 경우 Maximum의 기본값은 Double.MaxValue이고, 그렇지 않으면 기본값은 Int32.MaxValue(2,147,483,647 또는 0x7FFFFFFF)입니다.

필수 여부

false

위치

1

기본값

Int32.MaxValue

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Minimum <Object>

난수의 최소값을 지정합니다. 32비트 정수나 배정밀도 부동 소수점 수를 입력하거나 숫자 문자열(예: "100")과 같이 정수나 배정밀도 수로 변환할 수 있는 개체를 입력합니다. 기본값은 0입니다.

Minimum 값은 Maximum 값보다 작아야 하며 Maximum 값과 같아서는 안 됩니다. Maximum 또는 Minimum 값이 부동 소수점 수이면 Get-Random은 임의로 선택된 부동 소수점 수를 반환합니다.

필수 여부

false

위치

named

기본값

0

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-SetSeed <int>

난수 생성기의 시드 값을 지정합니다. 시드 값은 현재 명령에 사용되며 SetSeed를 다시 사용하거나 세션을 닫을 때까지 현재 세션의 모든 후속 Get-Random 명령에 사용됩니다. 시드는 기본값인 클럭 기반 값으로 다시 설정할 수 없습니다.

SetSeed 매개 변수는 필요하지 않습니다. 기본적으로 Get-Random은 시스템 클럭을 사용하여 시드 값을 생성합니다. SetSeed를 사용하면 동작이 임의로 수행되지 않으므로, 일반적으로 Get-Random 명령을 포함하는 스크립트를 디버깅 또는 분석할 때와 같이 동작을 재현하려는 경우에만 SetSeed를 사용합니다.

필수 여부

false

위치

named

기본값

시스템 클럭

파이프라인 입력 적용 여부

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

설명
-----------
이 명령은 배열에서 임의로 선택된 숫자 3개를 임의의 순서로 가져옵니다.





예 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를 사용하면 동작이 임의로 수행되지 않으므로, 일반적으로 스크립트를 디버깅 또는 분석할 때와 같이 결과를 재현하려는 경우에만 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이므로 값이 명령에서 첫 번째로 오거나 명명되지 않은 유일한 매개 변수이면 매개 변수 이름을 생략해도 됩니다.