powershellを使用して、$2??(??はワイルドカード)に合致する変数名を持つ変数を見つけ、それらの変数を$aという配列に格納したいです。作成した以下のコードは動作しません。$a = @() switch ($variableName) {

提供されたコードの一部が不足しているようです。`switch`文の条件として、どの変数をチェックするかが指定されていません。下記の例のように、変数のコレクションをループして各変数をチェックする必要があります。

“`
$a = @()

# 変数のコレクションをループ
foreach ($variableName in Get-Variable) {
# ワイルドカードにマッチする場合、$aに変数を追加
if ($variableName -like “*??”) {
$a += $variableName
}
}
“`

このコードでは、`Get-Variable`関数を使用して、現在のスコープに存在するすべての変数を取得します。各変数名を`$variableName`として処理し、`-like`演算子を使用してワイルドカードのマッチングを行います。ワイルドカードとして`*??`を指定しているため、2文字目が任意の文字である変数を見つけることができます。マッチする変数が見つかった場合は、`$a`配列に追加します。

もちろん、このコードはパフォーマンスとスケーラビリティが問題となる可能性があります。特に、グローバルなスコープに大量の変数が存在する場合は注意が必要です。他の実装方法も検討することをお勧めします。

コメントを残す