我有一个自定义C#PowerShell Cmdlet(继承自Cmdlet基类),我希望能够识别在运行Cmdlet时是否指定了“-Verbose”参数。我意识到当指定-Verbose参数时,WriteVerbose将输出,但是当指定-Verbose时我想实际做一些其他代码(即,在指定-Verbose时不输出Console.Write值)。
谢谢,
约翰
答案 0 :(得分:10)
检查cmdlet的绑定参数,如下所示:
if (this.MyInvocation.BoundParameters.ContainsKey("Verbose"))
{
}
答案 1 :(得分:0)
经过深入挖掘,这对我有用。 Visual Studio 2013,Powershell 3.0 使用PsCmdlet命名空间的C#cmdlet。 import-module。\ mytest.dll,然后是mytest -verbose
blnVerbose = this.MyInvocation.Line.ToLower().Contains("-verbose");
答案 2 :(得分:0)
如果您使用Microsoft.PowerShell.5.ReferenceAssemblies
引用程序集,则Verbose
基类中包含Cmdlet
参数。包含开关时,可以使用WriteVerbose()
进行写入。没有必要自己处理它。