试图阻止 WriteDebug 中的(显然是默认的)查询模式,这不起作用(参见前面的帖子)。由于我还不知道如何检测是否在命令行上设置了 -DEBUG 我正在尝试这个:
(<Cmdlet(VerbsDiagnostic.Test, "MyCmdlet", SupportsShouldProcess:=False)> _
Protected Overrides Sub BeginProcessing()
setting = SessionState.PSVariable
dbPref = setting.Get("DebugPreference").Value
vbPref = setting.Get("VerbosePreference").Value
WriteObject("VBpref: " & vbPref.ToString)
WriteObject("DBpref: " & dbPref.ToString)
setting.Set("VerbosePreference", ActionPreference.Continue)
setting.Set("DebugPreference", ActionPreference.Continue)
dbPref = setting.Get("DebugPreference").Value
vbPref = setting.Get("VerbosePreference").Value
WriteObject("VBpref: " & vbPref.ToString)
WriteObject("DBpref: " & dbPref.ToString)
WriteDebug("TEST")
输出如下:
PS> Test-MyCmdlet -d
VBpref: SilentlyContinue
DBpref: SilentlyContinue
VBpref: Continue
DBpref: Continue
DEBUG: TEST
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help
(default is "Y"):
这是没有 -D 开关的输出(没有查询):
PS> Test-MyCmdlet
VBpref: SilentlyContinue
DBpref: SilentlyContinue
VBpref: Continue
DBpref: Continue
DEBUG: TEST
那么,如果上面的重置有效,为什么我仍然处于查询模式?我怎样才能改变它?