与えられた数に基づいてランダムな文字を選択し、それぞれを一意の変数に動的に割り当てるPowershell?

サミー123

Powershellを使用して、指定された数に基づいてランダムな文字を選択し、それぞれを一意の変数に動的に割り当てるにはどうすればよいですか?

私は以下のコードを持っていますが、上記の方法がわかりません。何かアイデアがありますか?

$Count =3
$a = Get-Random -InputObject 'a','b','c','d','e','f','g','h','i','j', 'k', 'l', 'm','n' -Count $Count

各文字の出力は、Ar1、Ar2、Ar3($ Count = nの場合はArnなど)のような3つの異なる変数に格納されると思います。

mklement0

あなたが本当に明確な変数が必要な場合は($Ar1$Ar2、... $Ar<n>)、ここで最も簡潔なソリューションです:

$iref = [ref] 1
$Count = 3
Get-Random -InputObject ([char[]] (([char] 'a')..([char] 'n'))) -Count $Count |
  New-Variable -Force -Name { 'Ar' + $iref.Value++ }

注:([char[]] (([char] 'a')..([char] 'n')))はの略です
'a','b','c','d','e','f','g','h','i','j', 'k', 'l', 'm','n'

PowerShell Coreでは、を使用するだけで済みます('a'..'n')

また、-Name引数(作成する変数の名前)がスクリプトブロックを介して動的計算される方法にも注意してくださいスクリプトブロックのこのいわゆる遅延バインドの使用法では、変数スコープで実行されるため、インスタンスを使用して呼び出し元のスコープ内のシーケンス番号を参照する必要があります。対照的に、に渡すスクリプトブロックコマンドレットは、呼び出し元のスコープで直接実行されますこの驚くべき不一致については、このGitHubの問題で説明しています
[ref]$iref
ForEach-ObjectWhere-Object

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ