Get-Random
Rastgele bir sayı alır veya bir koleksiyondan nesneleri rastgele seçer.
Sözdizimi
RandomNumberParameterSet EnterprisePublishing
Get-Random
[[-Maximum] <Object>]
[-SetSeed <Int32>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
RandomListItemParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Count <Int32>]
[<CommonParameters>]
ShuffleParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Shuffle]
[<CommonParameters>]
Description
Get-Random cmdlet'i rastgele seçilen bir sayı alır.
Get-Randombir nesne koleksiyonu gönderirseniz, koleksiyondan rastgele seçilen bir veya daha fazla nesne alır.
Parametreler veya giriş olmadan, Get-Random komutu 0 (sıfır) ile [int32]::MaxValuearasında rastgele seçilen 32 bit işaretsiz bir tamsayı döndürür.
En düşük ve en yüksek değerleri, koleksiyondan döndürülen nesne sayısını veya bir tohum numarasını belirtmek için Get-Random parametrelerini kullanabilirsiniz.
Dikkat
Get-Random, rastgeleliğin şifreleme açısından güvenli olmasını sağlamaz. Tohum değeri geçerli komut için ve Get-Random yeniden kullanana veya oturumu kapatana kadar geçerli oturumdaki sonraki 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ışla sonuçlanıyor. Yalnızca Get-Random komutları içeren bir betikte hata ayıklama veya analiz etme 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.
PowerShell 7.4, şifreleme açısından rastgele güvenliği sağlayan get-secureRandom içerir.
Örnekler
Örnek 1: Rastgele tamsayı alma
Bu komut, 0 (sıfır) ile Int32.MaxValuearası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,93'ten 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 rastgele belirleme
PowerShell 7.1'den başlayarak, Karıştırma parametresini kullanarak koleksiyonun tamamını rastgele sırayla döndürebilirsiniz.
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 parametresi kullanmanın etkisi gösterilmektedir.
SetSeed rastgele olmayan davranışlar ürettiği için, genellikle yalnızca hata ayıklama veya bir betiği analiz etme 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
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
Örnek 10: Rastgele dosyaları alma
Bu komutlar, yerel bilgisayarın C: sürücüsünden 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 atma
Bu örnek, 1200 kez bir fair die döndürür ve sonuçları sayar. İlk komut ForEach-Object, Get-Random çağrısının ardışık olarak numaralarla (1-6) yineler. Sonuçlar Group-Object değerlerine göre gruplandırılır ve Select-Objectiçeren bir 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 Count parametresini Get-Randomnesneleri kullanmadan 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 dize veya $null ile kullanma
Bu örnekte, InputObject parametresi boş dize ('') ve $nulliçeren bir dizi belirtir.
Get-Random -InputObject @('a','',$null)
Get-Random
a, boş dize veya $nulldöndürür. Boş dize boş bir satır olarak görüntülenir ve $null bir PowerShell istemine döner.
Parametreler
-Count
Döndürülecek rastgele nesne sayısını belirtir. Varsayılan değer 1'dir.
Koleksiyon içeren InputObject kullanıldığında:
- Rastgele seçilen her öğe yalnızca bir kez döndürülür.
- Sayısı değeri koleksiyondaki nesne sayısını aşarsa, koleksiyondaki tüm nesneler rastgele sırayla döndürülür.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
RandomNumberParameterSet
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
RandomListItemParameterSet
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-InputObject
Nesne koleksiyonunu belirtir.
Get-Random, rastgele seçilen nesneleri koleksiyondan Counttarafından belirtilen sayıya kadar 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 Get-Randomöğesine de yöneltebilirsiniz.
PowerShell 7'de başlayarak, InputObject parametresi boş bir dize veya $nulliçerebilen dizileri kabul eder. Dizi işlem hattı aşağı veya InputObject parametre değeri olarak gönderilebilir.
Parametre özellikleri
| Tür: | Object[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
RandomListItemParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
ShuffleParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Maximum
Rastgele sayı için en yüksek 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ülebilen bir nesne girin.
En Büyük değeri, Minimumdeğ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, Maksimum varsayılan değeri Int32.MaxValue olur.
Minimum değeri bir çift (kayan noktalı sayı) ise, Maksimum varsayılan değeri Double.MaxValue olur. Aksi takdirde, varsayılan değer int32.MaxValue değeridir.
Parametre özellikleri
| Tür: | Object |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
RandomNumberParameterSet
| Position: | 0 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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 'dır (sıfır).
Minimum değeri, En Fazladeğ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.
Parametre özellikleri
| Tür: | Object |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
RandomNumberParameterSet
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-SetSeed
Rastgele sayı oluşturucu için bir tohum değeri belirtir. SetSeedkullandığınızda, cmdlet şifreleme açısından güvenli olmayan sahte sayılar oluşturur.
Dikkat
Tohumu ayarlamak rastgele olmayan davranışlarla sonuçlanıyor. Yalnızca Get-Random komutları içeren bir betikte hata ayıklama veya analiz etme gibi davranışları yeniden oluşturmaya çalışırken kullanılmalıdır.
Bu tohum değeri, Get-Random yeniden kullanana veya oturumu kapatana kadar geçerli komut ve geçerli oturumdaki sonraki tüm komutları için kullanılır. Tohumu varsayılan değerine sıfırlayamazsınız.
Parametre özellikleri
| Tür: | |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Shuffle
Koleksiyonun tamamını rastgele bir sırada döndürür.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
ShuffleParameterSet
| Position: | Named |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
Object
Herhangi bir nesneyi bu cmdlet'e yöneltebilirsiniz. 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
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 | İki kat |
| Bayt | İki kat |
| Int16 | İki kat |
| UInt16 | İki kat |
| Int32 | Int32 |
| UInt32 | İki kat |
| Int64 | Int64 |
| UInt64 | İki kat |
| İki kat | İki kat |
| Bekâr | İki kat |
Windows PowerShell 3.0'da Get-Random 64 bit tamsayıları destekler. Windows PowerShell 2.0'da tüm değerler System.Int32'e aktarılır.
PowerShell 7'de başlayarak, RandomListItemParameterSet parametre kümesindeki InputObject parametresi, boş bir dize veya $nulliçeren dizileri kabul eder. Önceki PowerShell sürümlerinde, yalnızca RandomNumberParameterSet parametre kümesindeki En Fazla parametresi boş bir dize veya $nullkabul etti.