私は、オンザフライで対話型メニューを生成するために使用するPowerShell関数を持っています。値を配列名$ mlistに渡し、配列の内容に基づいてメニューを生成します。ユーザは、単にそれらの所望の選択に関連する番号を選択するだけである。配列に9個以下の項目が含まれていると、コードは正常に動作します。配列に9つ以上の項目が含まれている場合、選択できる選択肢は「1」だけです。他の選択を選択すると、メニューが再び表示されます。 whileステートメントでカプセル化されていますが、これはアイテムが選択されていないときに望ましい機能です。したがって、配列に9以上の項目が含まれている場合、基本的に "1"以外の項目は無視されます。ここでは、コードは次のとおりです。9個以上のアイテムを持つPowerShellアレイのユーザー選択メニュー
$global:ans = $null
$global:selection = $null
While ($ans -lt 1 -or $ans -gt $mlist.count){
$mhead
Write-Host # empty line
$menu = @{}
for ($i=1;$i -le $mlist.count;$i++) {
if ($mlist.count -gt 1){
Write-Host -fore Cyan " $i." $($mlist[$i-1])
$menu.Add($i,($mlist[$i-1]))
}else{
Write-Host -fore Cyan " $i." $mlist
$menu.Add($i,$mlist)
}
}
Write-Host # empty line
$global:ans = Read-Host 'Please enter selection'
}
$global:selection = $menu.Item([int]$ans)
機能に渡された配列に含まれるデータは何ですか?私は文字列の動的配列と静的配列の両方を試しました。 –
これで更新しました...私の配列には12の項目があります。 1、10、11、12は選択できますが、2-9は選択できません。私のアレイは、vCenterを照会し、特定の基準に一致するホストを選択することによって構築されます。したがって、私の配列には12のESXiホストのホスト名が含まれています。 –