Łącze kierujące this, próbuję wprowadzić tryb verbose w moim skrypcie.Powershell: Definiowanie przełącznika Verbose w funkcji
Kiedy mam funkcję zdefiniowaną tak -
function TestVerbose
{
param(
[switch]$verbose,
[Parameter(Mandatory = $True)]
$p1
)
if($verbose)
{
Write-Verbose "Verbose Mode"
}
}
Get-Help TestVerbose
pojawia się następujący błąd -
Get-Help : A parameter with the name 'Verbose' was defined multiple times for the command. At line:12 char:9 + Get-Help <<<< TestVerbose + CategoryInfo : MetadataError: (:) [Get-Help], MetadataException + FullyQualifiedErrorId : ParameterNameAlreadyExistsForCommand,Microsoft.PowerShell.Commands.GetHelpCommand
ALE gdybym zdefiniować funkcję takiego [usuwając obowiązkowy atrybut parametru ], działa poprawnie
function TestVerbose
{
param(
[switch]$verbose,
$p1
)
if($verbose)
{
Write-Verbose "Verbose Mode"
}
}
Get-Help TestVerbose
Dowolny dea dlaczego takie zachowanie? Chcę utrzymać obowiązkową przełącznik i chcemy użytkownikowi wykonywać moją funkcję tak -
TestVerbose -verbose
Dzięki! Nie wiedziałem tego. Tak, używam V2. –
Nadal chciałem móc przetestować, czy włączono przełącznik -Verbose. Znalazłem odpowiedź w [to pytanie] (http://stackoverflow.com/questions/24446680/is-it-possible-to-check-if-verbose-argument-was-given-in-powershell). –