相关疑难解决方法(0)

如何在自定义cmdlet中正确使用-verbose和-debug参数

默认情况下,任何具有[CmdletBinding()]属性的命名函数都接受-debug和-verbose(以及其他一些)参数,并具有预定义的$ debug和$ verbose变量.我想弄清楚的是如何将它们传递给在函数内调用的其他cmdlet.

假设我有一个像这样的cmdlet:

function DoStuff() {
   [CmdletBinding()]

   PROCESS {
      new-item Test -type Directory
   }
}
Run Code Online (Sandbox Code Playgroud)

if -debug或者-verbose传入我的函数我想将该标志传递给$debugcmdlet.这样做的正确模式是什么?

parameters powershell cmdlets cmdlet

41
推荐指数
4
解决办法
6万
查看次数

在 Cmdlet 中,如何检测是否设置了 Debug 标志?

我正在编写一个 PowerShell Cmdlet 并使用WriteDebug,但我想编写一个需要额外 API 调用的对象,我宁愿在调试关闭时不进行该调用。如何检测是否设置了 Debug 标志,以便我可以完全跳过对 WriteDebug 的调用?

例如,我的 WriteDebug 调用将如下所示:

WriteDebug(string.Format("Name : {0}", api.GetName(myobj)));
Run Code Online (Sandbox Code Playgroud)

在那个例子中,我想避免调用api.GetName除非打开调试。

c# powershell

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

标签 统计

powershell ×2

c# ×1

cmdlet ×1

cmdlets ×1

parameters ×1