1
33
也许这听起来很奇怪,但是对于一个cmdlet来说,没有任何简单的方法可以知道它的详细模式或调试模式。看看相关的问题: How does a cmdlet know when it really should call WriteVerbose()?
一个不完美但实际上合理的选择是引入自己的cmdlet参数(例如,
更新
当我们只需要一个开关(不是,比方说,一个详细级别的值)时,那么
反正也不完美。如果有更好的解决方案,我真的很想知道他们自己。 |
2
35
通过
因此,在您的示例中,您需要:
这包括-Verbose、-Verbose:$false、-Verbose:$true以及根本不存在开关的情况。 |
3
26
没有必要。正如下面的代码所证明的那样,PowerShell已经做到了这一点。
输出是
不过,这并不像将-Debug传递给下一个cmdlet那样直接。这是通过$DebugPreference和$VerbrosePreference变量完成的。Write Debug和Write Verbose的行为与您预期的一样,但是如果您想对Debug或Verbose做一些不同的事情,可以读取 here 如何检查自己。 |
4
5
我的解决方案是:
与其他示例不同的是,它将repsect“-Verbose:$false”或“-Debug:$false”。如果使用以下命令,它将只将-Verbose/-Debug设置为$true:
|
5
2
您可以基于绑定的调试或详细参数构建一个新的哈希表,然后将其splat到内部命令。如果您只指定开关(并且没有传递假开关,比如$Debug:$false),您可以检查是否存在调试或冗长:
如果要传递参数值,则更复杂,但可以使用:
|
6
2
最好的方法是设置
|
7
1
可以在启动脚本时将verboseproference设置为全局变量,然后在自定义cmdlet中检查全局变量。 脚本:
您的CmdLet:
显式检查“Continue”允许脚本等于
|
8
0
我认为这是最简单的方法:
|