Bezug nehmend this Link, ich versuche, in meinem Skript verbose-Modus einzuführen.Powershell: Definieren der Verbose-Schalter in einer Funktion
Wenn ich eine Funktion haben, die wie folgt definiert -
function TestVerbose
{
param(
[switch]$verbose,
[Parameter(Mandatory = $True)]
$p1
)
if($verbose)
{
Write-Verbose "Verbose Mode"
}
}
Get-Help TestVerbose
ich folgende Fehlermeldung erhalten -
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
ABER, wenn ich die Funktion wie folgt [Entfernen der Parameter obligatorisches Attribut definieren ], es funktioniert gut
function TestVerbose
{
param(
[switch]$verbose,
$p1
)
if($verbose)
{
Write-Verbose "Verbose Mode"
}
}
Get-Help TestVerbose
Alle ich Warum solch ein Verhalten? Ich möchte den obligatorischen Schalter halten und den Benutzer möchte meine Funktion wie folgt ausführen -
TestVerbose -verbose
Danke! Ich wusste das nicht. Ja, ich benutze V2. –
Ich wollte immer noch testen können, ob der Schalter -Verbose aktiviert wurde. Ich fand meine Antwort in [dieser Frage] (http://stackoverflow.com/questions/24446680/is-it-possible-to-check-if-verbose-argument-was-given-in-powershell). –