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