相关疑难解决方法(0)

cmdlet如何知道它何时应该调用WriteVerbose()?

如何做一个cmdlet的知道什么时候真的应该叫WriteVerbose(), WriteDebug()等?

也许我想念一些简单的东西,但我找不到答案.到目前为止我见过的所有cmdlet实现都WriteVerbose()没有任何犹豫.我知道这样做是正确的,但它没有效果.

当详细模式关闭但cmdlet仍然为WriteVerbose()调用准备数据时,性能会受到影响,即无需任何操作.

换句话说,在cmdlet中我希望能够:

if (<VerboseMode>)
{
    .... data preparation, sometimes expensive ...
    WriteVerbose(...);
}
Run Code Online (Sandbox Code Playgroud)

但我不知道怎么做到这一点if (<VerboseMode>).有任何想法吗?


结论: @ stej的答案显示了如何在理论上获得所需的信息.在实践中,这是hacky并且不太可能合适.因此,如果cmdlet产生非常昂贵的详细或调试输出,那么引入指定详细级别的附加参数似乎是合理的.

powershell

6
推荐指数
3
解决办法
3912
查看次数

在powershell中检查是否处于调试模式

如果我的脚本在调试模式下运行,如何检查powershell?我目前正在安装PowerShell Tools的Visual Studio 2015中进行调试.

脚本的一部分使用Send-MailMessage发送电子邮件.我想做类似下面的事情.

If (Debug)
{
    $messageProperties.To = "$env:username@company.com"
}
Else
{
    $messageProperties.To = "prodmailbox@company.com"
}
Run Code Online (Sandbox Code Playgroud)

我知道在C#中我可以做类似下面的事情.我想知道如何在PowerShell中处理它.

#if DEBUG
    // Debug code
#endif
Run Code Online (Sandbox Code Playgroud)

debugging powershell

5
推荐指数
2
解决办法
3415
查看次数

标签 统计

powershell ×2

debugging ×1