我有一个powershell类,我试图在使用新的Powershell 5类时获得write-debug和write-verbose的输出。

例如:

class TestWriteDebug
{
    TestWriteDebug()
    {
        Write-Debug "Constructor called"
    }

    verboseOutput()
    {
        Write-Verbose "Method `"verboseOutput()`" was called"
    }
}

我通过[TestWriteDebug]::new()称呼它
$test = [TestWriteDebug]::new()
$test.verboseOutput()

我似乎无法弄清楚在创建对象或调用对象的方法时如何传递-debug和-verbose标志,谁能告诉我这是如何实现的?

谢谢你的帮助。

最佳答案

因为您将它们作为表达式的一部分进行调用,所以启用它们的最简单方法可能是使用Preference变量:

$DebugPreference = 'Continue'
$VerbosePreference = 'Continue'

$test = [TestWriteDebug]::new()
$test.verboseOutput()

要将它们重置为静默,请退出定义了这些首选项的范围,或者将值重置为'SilentlyContinue'。如果要在有限的上下文中启用它们,可以在脚本块中执行它们:
$test = &{$DebugPreference = 'continue'; [TestWriteDebug]::new()}

关于class - Powershell 5类,构造函数或方法中的写调试或写详细输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39413401/

10-10 13:49