0
whatif 매개 변수가 cmdlet에 전달되었는지 여부를 알고 싶습니다. 전 대한매개 변수 "whatif"가 프로그래밍 방식으로 고객 cmdlet에 전달되었는지 여부를 확인하는 방법은 무엇입니까?
: 나는 변수의 값을 찾아 그것을 시도
-WhatIf 제거-mycmdlet : WhatIfPreference.
그러나 항상 false가됩니다.
whatif 매개 변수가 전달되었는지 어떻게 알 수 있습니까?
function Test-WhatIf {
[CmdletBinding(SupportsShouldProcess = $true)]
param (
)
$WhatIfPreference
$PSBoundParameters.ContainsKey('WhatIf')
}
내가 -WhatIf의 추가에 따라, $ 허위 또는 $ 사실 얻을 : 나는 그런 기능을 정의 할 때
, 당신에게
감사합니다, 레쉬
빠른 답장을 보내 주셔서 감사합니다. 이것은 .net (C#)에서 구현 된 사용자 지정 cmdlet입니다. 프로그래밍 방식으로 어떻게 할 수 있습니까? 기본적으로 "PSCmdlet의 개체 GetVariableValue (문자열 이름)"을 사용했습니다. 항상 false를 반환했습니다. Btw, C#에서 $ PSBoundParameters.ContainsKey ('WhatIf')에 대한 등식이 있습니까? – Dreamer
예, 확실하게/whatif 매개 변수가 사용자가 전달할 때 예상대로 작동하는지 확인하기 위해 supportsshouldprocess를 올바르게 구현했습니다. 나는 다음과 같은 특성 집합을 가진 내 cmdlet을 선언했습니다. [Cmdlet (VerbsCommon.Remove, "EmcLun", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] 사용자가이 매개 변수를 전달했는지 알 필요가 있지만 어떻게 알지 못합니다. 프로그래밍 방식으로 .net에서 수행하십시오. – Dreamer
OK, VS를 잡고 "적절한"cmdlet에서 동일한 것을 찾으려고했습니다. 당신은 두 번째 스레드에서 내 대답을 찾을 수 있습니다 :) – BartekB