일부 XML 요소를 찾아서 다른 함수로 전달하여 조작 할 수있는 함수가 있습니다. 외부 함수를 호출하면 XML 데이터가 변경되므로 결과를 명명 할 때 Set
동사를 사용했습니다. 데이터를 변경하는 함수에 WhatIf
을 사용하는 것이 좋습니다.Powershell : 배열에 함수를 전달할 때 WhatIf 사용
내가 가진 문제는 XML 요소 배열을 Set-InlineCssStyle
에 전달하고 있으며 각 항목을 반영하기 위해 ShouldProcess
의 출력을 원한다는 것입니다.
나는 코드를 생각해 냈습니다.
...
if ($WhatIfPreference)
{
$elements.ForEach({
if ($PSCmdlet.ShouldProcess($_.Name, 'Set-InlineCssStyle')){}
})
}
else
{
Set-InlineCssStyle -Elements $elements -Style $Style
}
...
배열을 함수에 전달할 때 WhatIf
을 사용하는 것이 가장 좋은 방법은 무엇입니까?
가장 좋은 방법은 '설정 - InlineCssStyle''에서 ShouldProcess' 지원을 구현하고 호출하는 함수 –
@MathiasR 내부 그것에 일반 매개 변수를 전달하는 것입니다. Jessen 응답에 감사드립니다. Set-InlineCssStyle은 개인 함수이므로 내보낼 수 없습니다. 필자는'Set-InlineCssStyle'을 호출하는 많은 public 함수를 가지고 있습니다. 나는이 함수들 각각에'ShouldProcess'를 함축하여 사용자가 어떤 XML 엘리먼트가 합쳐질지를 알기를 원했다. 'Set-InlineCssstyle'에 대한 호출을'ShouldProcess'에 대한 스크립트 블록으로 옮기고 여러 호출을 제외하는 것을 고려하고 있습니다. 이는 다소 비효율적이지만 성능에 큰 영향을주지는 않습니다. –