[英]PowerShell VB.NET cmdlet. Change -DEBUG switch
試圖阻止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
那么,如果上述重置有效,為什么我仍處於查詢模式? 我該如何更改?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.