Get-Random

Rastgele bir sayı alır veya bir koleksiyondan rastgele nesneleri seçer.

Syntax

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>]

Description

Get-Random Cmdlet rastgele seçilen bir sayıyı alır. öğesine bir nesne Get-Randomkoleksiyonu gönderirseniz, koleksiyondan rastgele seçilen bir veya daha fazla nesne alır.

Parametreler veya giriş olmadan, komut Get-Random 0 (sıfır) ile [int32]::MaxValuearasında rastgele seçilmiş 32 bit işaretsiz bir tamsayı döndürür.

En düşük ve en yüksek değerleri, bir koleksiyondan döndürülen nesne sayısını veya bir tohum sayısını belirtmek için parametresini Get-Random kullanabilirsiniz.

Dikkat

Bu dengeli değer, siz SetSeed'i yeniden kullanana veya oturumu kapatana kadar geçerli komut ve geçerli oturumdaki sonraki Get-Random tüm komutlar için kullanılır. Tohumu varsayılan değerine sıfırlayamazsınız.

Tohumu kasıtlı olarak ayarlamak rastgele olmayan, tekrarlanabilir davranışlarla sonuçlanıyor. Yalnızca komutları içeren Get-Random bir betiğin hata ayıklaması veya analiz edilmesi gibi davranışları yeniden oluşturmaya çalışırken kullanılmalıdır. Tohum değerinin içeri aktarılan modül gibi aynı oturumdaki diğer kodlar tarafından ayarlanabileceğini unutmayın.

Örnekler

Örnek 1: Rastgele bir tamsayı alma

Bu komut 0 (sıfır) ile Int32.MaxValue arasında rastgele bir tamsayı alır.

Get-Random

3951433

Örnek 2: 0 ile 99 arasında rastgele bir tamsayı alma

Get-Random -Maximum 100

47

Örnek 3: -100 ile 99 arasında rastgele bir tamsayı alma

Get-Random -Minimum -100 -Maximum 100

56

Örnek 4: Rastgele kayan noktalı sayı alma

Bu komut, 10,7'den büyük veya buna eşit ve 20,92'den küçük rastgele bir kayan nokta sayısı alır.

Get-Random -Minimum 10.7 -Maximum 20.93

18.08467273887

Örnek 5: Diziden rastgele bir tamsayı alma

Bu komut, belirtilen diziden rastgele seçilen bir sayı alır.

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

8

Örnek 6: Bir diziden birkaç rastgele tamsayı alma

Bu komut, bir diziden rastgele seçilen üç sayıyı alır.

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

3
1
13

Örnek 7: Koleksiyonun tamamını rastgele seçin

PowerShell 7.1'den başlayarak, tüm koleksiyonu rastgele sırayla döndürmek için Shuffle parametresini kullanabilirsiniz.

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

2
3
5
1
8
13

Örnek 8: Rastgele sayısal olmayan bir değer alma

Bu komut, sayısal olmayan bir koleksiyondan rastgele bir değer döndürür.

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

yellow

Örnek 9: SetSeed parametresini kullanma

Bu örnekte SetSeed parametresini kullanmanın etkisi gösterilmektedir.

SetSeed rastgele olmayan bir davranış ürettiği için, genellikle yalnızca bir betiğin hata ayıklaması veya analiz edilmesi gibi sonuçları yeniden oluşturmak için kullanılır.

# 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

Örnek 10: Rastgele dosyaları alma

Bu komutlar, yerel bilgisayarın sürücüsünden C: rastgele seçilen 50 dosya örneğini alır.

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

Örnek 11: Zar at

Bu örnek, adil zarı 1200 kez yuvarlar ve sonuçları sayar. İlk komut, ForEach-Object çağrıyı Get-Random numaralarla (1-6) kanaldan yineler. Sonuçlar değerlerine göre gruplandırılır ve ile Group-ObjectSelect-Objecttablo olarak biçimlendirilir.

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

Örnek 12: Count parametresini kullanma

Artık count parametresini nesneleri Get-Randomöğesine bağlamadan kullanabilirsiniz. Aşağıdaki örnek 10'dan küçük üç rastgele sayı alır.

Get-Random -Count 3 -Maximum 10

9
0
8

Örnek 13: InputObject parametresini boş bir dizeyle veya $null

Bu örnekte , InputObject parametresi boş dize ('') ve $nulliçeren bir dizi belirtir.

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

Get-Randoma, boş dize veya $nulldöndürür. Boş sokma boş bir satır olarak görüntülenir ve $null bir PowerShell istemine döner.

Parametreler

-Count

Döndürülecek rastgele nesne veya sayı sayısını belirtir. Varsayılan değer 1'dir.

ile InputObjectkullanıldığında , Count değeri koleksiyondaki nesne sayısını aşarsa, Get-Random tüm nesneleri rastgele sırayla döndürür.

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

-InputObject

Nesne koleksiyonunu belirtir. Get-Random koleksiyondan Count tarafından belirtilen sayıya kadar rastgele seçilen nesneleri rastgele sırada alır. Nesneleri, nesneleri içeren bir değişkeni veya nesneleri alan bir komut veya ifade girin. Ayrıca bir nesne koleksiyonunu öğesine Get-Randomde yöneltebilirsiniz.

PowerShell 7'de başlayarak, InputObject parametresi boş dize veya $nulliçerebilen dizileri kabul eder. Dizi işlem hattına veya InputObject parametre değeri olarak gönderilebilir.

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

-Maximum

Rastgele sayı için en büyük değeri belirtir. Get-Random en büyük değerden (eşit olmayan) küçük bir değer döndürür. Bir tamsayı, çift duyarlıklı kayan noktalı sayı veya sayısal dize ("100") gibi bir tamsayıya veya çifte dönüştürülebilecek bir nesne girin.

En Büyük değeri, Minimum değerinden büyük (eşit değildir) olmalıdır. Maksimum veya Minimum değeri kayan noktalı bir sayıysa, Get-Random rastgele seçilen kayan noktalı bir sayı döndürür.

64 bit bir bilgisayarda, Minimum değeri 32 bitlik bir tamsayıysa, Varsayılan Maksimum değeri Int32.MaxValue'dur.

Minimum değeri bir çift (kayan noktalı sayı) ise, Varsayılan Maksimum değeri Double.MaxValue'dır. Aksi takdirde, varsayılan değer Int32.MaxValue'dur.

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

-Minimum

Rastgele sayı için en düşük değeri belirtir. Bir tamsayı, çift duyarlıklı kayan noktalı sayı veya sayısal dize ("100") gibi bir tamsayıya veya çifte dönüştürülebilecek bir nesne girin. Varsayılan değer 0 (sıfır)'dır.

Minimum değeri, En Büyük değerinden küçük (eşit değildir) olmalıdır. Maksimum veya Minimum değeri kayan noktalı bir sayıysa, Get-Random rastgele seçilen kayan noktalı bir sayı döndürür.

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

-SetSeed

Rastgele sayı oluşturucu için bir tohum değeri belirtir. SetSeed kullandığınızda, cmdlet kriptografik olarak güvenli olmayan sahte sayılar oluşturur.

Dikkat

Tohumu ayarlamak rastgele olmayan davranışlarla sonuçlanıyor. Yalnızca komutları içeren Get-Random bir betiğin hata ayıklaması veya analiz edilmesi gibi davranışları yeniden oluşturmaya çalışırken kullanılmalıdır.

Bu dengeli değer, siz SetSeed'i yeniden kullanana veya oturumu kapatana kadar geçerli komut ve geçerli oturumdaki sonraki Get-Random tüm komutlar için kullanılır. Tohumu varsayılan değerine sıfırlayamazsınız.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Shuffle

Koleksiyonun tamamını rastgele bir sırada döndürür.

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

Girişler

Object

Herhangi bir nesneyi bu cmdlet'e geçirebilirsiniz. Kanallı nesnelerden değerleri rastgele seçer.

Çıkışlar

Int32

Int64

Double

PSObject

Bu cmdlet, gönderilen bir koleksiyondan rastgele seçilen bir tamsayı veya kayan noktalı sayı ya da nesne döndürür.

Notlar

Varsayılan olarak, Get-RandomRandomNumberGenerator sınıfını kullanarak kriptografik olarak güvenli rastgelelik oluşturur.

Get-Random her zaman giriş değeriyle aynı veri türünü döndürmez. Aşağıdaki tabloda, sayısal giriş türlerinin her biri için çıkış türü gösterilmektedir.

Giriş Türü Çıkış Türü
SByte Çift
Bayt Çift
Int16 Çift
UInt16 Çift
Int32 Int32
UInt32 Çift
Int64 Int64
UInt64 Çift
Çift Çift
Tek Çift

Windows PowerShell 3.0 Get-Random sürümünden başlayarak 64 bit tamsayıları destekler. Windows PowerShell 2.0'da tüm değerler System.Int32'ye aktarılır.

PowerShell 7'de başlayarak, RandomListItemParameterSet parametre kümesindeki InputObject parametresi boş dize veya $nulliçeren dizileri kabul eder. Önceki PowerShell sürümlerinde, yalnızca RandomNumberParameterSet parametre kümesindeki Maximum parametresi boş bir dize veya $nullkabul etti.