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
Cmdlet Get-Random
rastgele seçilen bir sayı alır. öğesine bir nesne Get-Random
koleksiyonu 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.MaxValue (0x7FFFFFFF
, 2,147,483,647
) arasında rastgele seçilen 32 bit işaretsiz bir tamsayı döndürür.
Varsayılan olarak, Get-Random
RandomNumberGenerator sınıfını kullanarak şifreleme açısından güvenli rastgelelik oluşturur.
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
Tohumu kasıtlı olarak ayarlamak rastgele olmayan ve 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.
Bu tohum değeri, 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.
Örnekler
Örnek 1: Rastgele 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 bir kayan nokta numarası 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 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ı rastgele sırada alır.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Örnek 7: Koleksiyonun tamamını rastgele belirleme
PowerShell 7.1'den başlayarak, tüm koleksiyonu rastgele bir sırada 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 davranışlar ü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: Adil zar at
Bu örnekte fair die 1200 kez yuvarlanır ve sonuçlar sayılır. İlk komut, ForEach-Object
kanaldan gelen çağrıyı Get-Random
numaralarla (1-6) yineler. Sonuçlar ile Group-Object
değerlerine göre gruplandırılır ve ile Select-Object
tablo 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 nesneleri ile bağlamadan Count parametresini Get-Random
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 $null
içeren bir dizi belirtir.
Get-Random -InputObject @('a','',$null)
Get-Random
, boş dize veya $null
döndürüra
. 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 InputObject
kullanıldığında , Count değeri koleksiyondaki nesne sayısını aşarsa, Get-Random
tüm nesneleri rastgele sırada döndürür.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
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 de yöneltebilirsiniz Get-Random
.
PowerShell 7'de başlayarak , InputObject parametresi boş bir dize veya $null
içerebilen dizileri kabul eder. Dizi işlem hattına veya InputObject parametre değeri olarak gönderilebilir.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
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 küçük (eşit olmayan) 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ülebilen 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'dır.
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'dır.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
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ülebilen 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 |
Required: | False |
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 şifreleme açısından güvenli olmayan sahte sayılar oluşturmak için System.Random yöntemini kullanır.
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 |
Required: | False |
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 |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Bir veya daha fazla nesnenin kanalını oluşturabilirsiniz. Get-Random
, kanallı nesnelerden rastgele değerler seçer.
Çıkışlar
System.Int32, System.Int64, System.Double
Get-Random
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-Random
RandomNumberGenerator sınıfını kullanarak şifreleme açısından 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 $null
içeren dizileri kabul eder. Önceki PowerShell sürümlerinde, yalnızca RandomNumberParameterSet parametre kümesindeki Maximum parametresi boş bir dize veya $null
kabul etti.