私はすばらしいスクリプト作成者ではありません。翻訳では迷っています...Powershell - 1月から12月のリストからユーザーを選択できるようにする
私はスクリプトを作成して、選択肢のリスト、特に年の月から選択するようにします。この結果はスクリプトの後半で使用されます。
ここに抜粋です:
$optionQuit = New-Object System.Management.Automation.Host.ChoiceDescription "Quit", "Quit"
$option1 = New-Object System.Management.Automation.Host.ChoiceDescription "01-January", "01-January OU"
$option2 = New-Object System.Management.Automation.Host.ChoiceDescription "02-February", "02-February OU"
$option3 = New-Object System.Management.Automation.Host.ChoiceDescription "03-March", "03-March OU"
$option4 = New-Object System.Management.Automation.Host.ChoiceDescription "04-April", "04-April OU"
$option5 = New-Object System.Management.Automation.Host.ChoiceDescription "05-May", "05-May OU"
$option6 = New-Object System.Management.Automation.Host.ChoiceDescription "06-June", "06-June OU"
$option7 = New-Object System.Management.Automation.Host.ChoiceDescription "07-July", "07-July OU"
$option8 = New-Object System.Management.Automation.Host.ChoiceDescription "08-August", "08-August OU"
$option9 = New-Object System.Management.Automation.Host.ChoiceDescription "09-September", "09-September OU"
$option10 = New-Object System.Management.Automation.Host.ChoiceDescription "10-October", "10-October OU"
$option11 = New-Object System.Management.Automation.Host.ChoiceDescription "11-November", "11-November OU"
$option12 = New-Object System.Management.Automation.Host.ChoiceDescription "12-December", "12-December OU"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($optionQuit, $option1, $option2, $option3, $option4. $option5, $option6, $option7, $option8, $option9, $option10, $option11, $option12)
$result = $host.ui.PromptForChoice($title, $message, $options, [int[]](0))
はしかし、私はエラーを取得しておいてください。
ERROR: Exception calling "PromptForChoice" with "4" argument(s): "Object reference not set to an instance of an object." TestingMenu.ps1 (31, 1): ERROR: At Line: 31 char: 1 ERROR: + $result = $host.ui.PromptForChoice($title, $message, $options, [int[] ... ERROR: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERROR: + CategoryInfo : NotSpecified: (:) [], MethodInvocationException ERROR: + FullyQualifiedErrorId : NullReferenceException ERROR:
私が欠けている...と私はおそらくこれを作ってるんだかわからないんだけど必要以上に複雑です...しかし、最終変数$ resultは、例えば「04月」のようなものでなければなりません。
私はここで何が不足していると思いますか?
あなたは 'Collection'、ない配列を送信する必要がありますがありません。あなたの 'ChoiceDescription []'は配列です。 MSDN [ここ](https://msdn.microsoft.com/en-us/library/system.management.automation.host.pshostuserinterface.promptforchoice(v = vs.85).aspx)の例を見てください – gravity
選択肢が非常に多いので、コードをリファクタリングして、次のようにすることが考えられます。 $ result = $ options | Out-GridView -Title "項目を選択" -OutputMode Single は、望ましい動作を提供します。 –
@gravity配列は、[コレクション]に[このコンストラクタ](https://msdn.microsoft.com/en-us/library/ms132401.aspx)と1次元ゼロベースの配列があるため、暗黙的に 'Collection'に変換できます'IList'のジェネリック版を実装してください。 – PetSerAl