![]() |
как правильно определять использование -verbose в скрипте
Добиваю один скрипт до удобоваримого не только мной использования, и столкнулся с одной проблемой. Раньше, если верно помню, при включении [cmdletbinding()] перед param мы имели переменные $verbose, $debug и т.д. которые при указании одноименного параметра менялись с false на true, теперь же таких переменных я нащупать не могу (или щупаю их не в правильную сторону), зато переменная $VerbosePreference самостоятельно меняется с SilentlyContinue на Continue (опять же не уверен, но вроде раньше нужно было проверять значение $Verbose и менять $VerbosePreference вручную).
Собственно знать значение $verbose мне нужно только для того, чтобы не выводить лишний раз сообщение а-ля "... используйте ключ -Verbose..." в том случае, если таковой ключ уже введен. Пока я придумал только такую затычку: Код:
if ($VerbosePreference -ne 'Continue') {Write-Warning "... используйте ключ -Verbose..."} |
Напомнили мне о $PSBoundParameters, с ним все заработало без сомнительных костылей:
Код:
if (!($PSBoundParameters.ContainsKey("Verbose"))) {Write-Warning "... используйте ключ -Verbose..."} |
Время: 23:22. |
Время: 23:22.
© OSzone.net 2001-