저는 훌륭한 스크립터가 아니며, 번역에서 길을 잃었습니다. 어쩌면 저는 완전히 잘못된 생각을하고 있습니다 ...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-April"와 같아야합니다.
내가 여기에 무엇을 놓치고 있는지 알 수 있습니까?
을 가지고 어떤 의미를하지 않습니다. '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 배열은 [Collection]에 [this constructor] (https://msdn.microsoft.com/en-us/library/ms132401.aspx) 및 단일 차원 0 기반 배열이 있기 때문에'Collection'으로 암시 적으로 변환 될 수 있습니다. 'IList'의 제네릭 버전을 구현하십시오. – PetSerAl