我将Carbon导入我的PowerShell脚本;但是当使用-Verbose运行我的脚本时,Carbon也会输出很多VERBOSE语句。
是否可以静默导入模块,以便我可以忽略导入模块中的详细语句而只留下我自己的语句?
答案 0 :(得分:21)
尝试使用Import-Module Carbon -Verbose:$ false
答案 1 :(得分:4)
我无法使用上述解决方案来处理所有模块(我使用的是Powershell 4.0)。这是我最终使用的解决方案,到目前为止它已经与我使用的每个模块一起工作:
在我的脚本文件的顶部,我有这个,使-Verbose为脚本工作(脚本没有参数):
[CmdletBinding()]
Param()
然后,当我准备导入模块时,我这样做:
$SaveVerbosePreference = $global:VerbosePreference;
$global:VerbosePreference = 'SilentlyContinue';
Import-module "Whatever";
$global:VerbosePreference = $SaveVerbosePreference;
然后我就像这样调用脚本:
PowerShell -file something.ps1 -Verbose
答案 2 :(得分:1)
Import-Module Carbon -Verbose:$ false |出空
答案 3 :(得分:1)
我认为比这里标记的更好的解决方案是将详细输出重定向到不同的流。通过这种方式,您可以在需要时打印输出,并且它不会永远膨胀:
Import-Module Carbon 4>&5
这会将详细信息流(4)重定向到调试流(5)。使用Verbose开关运行脚本时,它不会从Import-Module输出详细行,但您可以通过使用-Debug开关运行脚本来恢复它。
答案 4 :(得分:0)
由于Carbon似乎是一个脚本模块,您可以尝试在模块本身$script:VerbosePreference
内设置$VerbosePreference
(或仅'SilentlyContinue'
)到carbon.psm1
。模块范围应该可以解决问题。
答案 5 :(得分:0)
第一次投稿,希望有所帮助。
ipmo $dir\$i 3>$null
ipmo:Import-Module 的简写/别名
3>$null:将警告消息重定向到 null
编辑: 我想分享我在工作中找到的一张桌子,当时我正在寻找帮助解释这一点的最佳方式……但我现在找不到了。但是,您可能已经注意到 ipmo 的行为与其他 PWshell cmdlet 不同。 bg中一共有4个流。
我不记得 1 和 2。3 是警告。 4虽然,4不一定是错误,但同时也是错误?我不记得确切的措辞。它可以绕过错误。
如果我再次找到那张获奖表,我一定会分享这份祝福。