を参照してください。thisリンク、スクリプトに冗長モードを導入しようとしています。私は次のエラーを取得Powershell:関数内にVerboseスイッチを定義する
function TestVerbose
{
param(
[switch]$verbose,
[Parameter(Mandatory = $True)]
$p1
)
if($verbose)
{
Write-Verbose "Verbose Mode"
}
}
Get-Help TestVerbose
- - 私はこのように定義された関数がある場合
私はこのような関数を定義する場合
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
しかし、を[パラメータ必須属性を削除します]、それは正常に動作します
function TestVerbose
{
param(
[switch]$verbose,
$p1
)
if($verbose)
{
Write-Verbose "Verbose Mode"
}
}
Get-Help TestVerbose
なぜそのような行動ですか?私は、必須のスイッチを維持したいとユーザがこのように私の機能を実行したい -
TestVerbose -verbose
ありがとうございます!これを知らなかったはい、私はV2を使用しています。 –
私は、-Verboseスイッチがアクティブになっているかどうかを確認するためにテストすることができたかったのです。私は[この質問](http://stackoverflow.com/questions/24446680/is-it-possible-to-check-if-verbose-argument-was-given-in-powershell)で私の答えを見つけました。 –