PowerShell(乱数、コマンド置換)

PowerShellを理解する(for、foreach)」の続きです。

乱数を取得します。

コマンドレットは、Get-Randomです。

PS C:\Users\takk> get-random
2045325134
PS C:\Users\takk> get-random 5
2
PS C:\Users\takk>

引数を指定すると、0~(引数に指定した数-1)の乱数を取得できます。

PS C:\Users\takk> $s=""
PS C:\Users\takk> foreach($i in 0..255){
>> $r=get-random 256
>> $s += "{0:X2} " -f $r
>> if($i % 16 -eq 15){$s += "`n"}
>> }
>>
PS C:\Users\takk> echo $s
64 88 5F B6 32 B3 A9 1E 9B B8 39 68 FD 9E D6 F6
6D D0 E6 EF 2E 0B 67 B0 D7 ED 03 EF EA 21 9C 2B
2D 1E 1E DB 9D AF 00 54 D3 2A B7 10 F7 E9 C3 CE
5E CE BA AA 2C 4B 30 58 20 AF DE 45 B0 BA 34 7A
1C 0E 3A DF 7F FB 59 BD D0 91 1B 04 53 56 B9 EE
2A 34 91 1B 66 F1 FE E2 ED C5 BA ED D1 BB A4 19
F5 3D F4 E8 AF E4 4E 63 75 FD DA 9A 2F 2C 05 C9
F6 F0 1A 7B 28 18 13 2A 0F 58 F2 B9 40 6B EC 14
ED 02 0E 15 62 D0 3F 45 E5 2D A6 69 17 64 B2 C1
C0 F1 F6 E0 A0 28 F0 DD 2A C9 D9 56 F2 94 23 09
10 C5 AD 2C 1D EF 67 26 B1 D5 96 FB 72 A9 13 AA
A5 30 F9 4E 75 0B 74 C4 12 31 EA 98 F6 E8 53 50
0A 9D 59 51 B7 86 A4 D0 8A D0 2F CA 92 F5 6B 81
B6 2E B1 C1 9B D4 94 05 50 E8 1A EB 05 CE 2F C8
81 45 F0 D4 50 C1 F2 1F 8C 28 C4 A4 DB AA 32 1D
C5 69 E1 C7 36 91 B5 35 08 53 00 CF 6B B8 CB BB

PS C:\Users\takk>

コマンド置換は、bashのように$()で囲みます。

PS C:\Users\takk> "{0:X}" -f $(get-random)
246955EC
PS C:\Users\takk>

コマンド置換はネストもできます。

PS C:\Users\takk> mkdir aaa | out-null
PS C:\Users\takk> cd aaa
PS C:\Users\takk\aaa> foreach($i in 0..10){mkdir $("dir_{0:X}" -f $(get-random)) | out-null}
PS C:\Users\takk\aaa> ls


    ディレクトリ: C:\Users\takk\aaa


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2017/07/01     11:20            dir_11CFDF63
d----        2017/07/01     11:20            dir_2065207
d----        2017/07/01     11:20            dir_2EA62317
d----        2017/07/01     11:20            dir_3A7F5143
d----        2017/07/01     11:20            dir_46585CA
d----        2017/07/01     11:20            dir_59E634FB
d----        2017/07/01     11:20            dir_5D8B7032
d----        2017/07/01     11:20            dir_60682448
d----        2017/07/01     11:20            dir_6604792F
d----        2017/07/01     11:20            dir_6A254AAD
d----        2017/07/01     11:20            dir_7E2D24B5


PS C:\Users\takk\aaa>

One response to “PowerShell(乱数、コマンド置換)

  1. Pingback: PowerShell(begin、process、endブロック) | コマンドの達人

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA