在某些情况下,即使用户没有提供-verbose参数,我也希望将verbose开关强制为ON。例如,我的一些Cmlets从配置文件中读取其详细级别。
在常规Cmdlet(非二进制)中,我是这样实现的:
if ($MyInvocation.MyCommand.Module.PrivateData['verbose'])
{
$VerbosePreference = [System.Management.Automation.ActionPreference]::Continue
}
$isInVerboseMode = ($VerbosePreference -eq [System.Management.Automation.ActionPreference]::Continue)
注意,详细级别是从模块的PrivateData哈希表中读取的,并应用于$VerbosityPreference变量。
问:当我用C#开发一个二进制Cmdlet时,我该如何实现同样的行为?也许,一个更具体的问题是:如何访问C# Cmdlet中VerbosePreference变量?
谢谢
1条答案
按热度按时间jgovgodb1#
如果从
PSCmdlet
派生,则可以从二进制cmdlet设置PowerShell变量:要在cmdlet中临时启用详细输出,我使用如下代码: