Powershell 在全局级别应用详细信息

Powershell apply verbosity at a global level

想象一下,如果您有一个包含单行代码的脚本,例如

ni -type file foobar.txt

其中 -verbose 标志未提供给 ni 命令。如果我要 运行 这个脚本来强制冗长,有没有办法在全局 PSSession 级别设置冗长?我问的原因是我有一组大约 60 个脚本,它们是相互依赖的,并且 none 这些脚本对它们发出的任何命令都很详细,我希望在调用主入口点时看到整个输出powershell 脚本。

使用$PSDefaultParameterValues:

$PSDefaultParameterValues['New-Item:Verbose'] = $true

在全局范围内设置它,然后 New-Item cmdlet 的 -Verbose 默认值将为 $True。

您可以对要影响的 cmdlet 使用通配符:

$PSDefaultParameterValues['New-*:Verbose'] = $true

将为所有 New-* cmdlet 设置它。

$PSDefaultParameterValues['*:Verbose'] = $true

将为所有 cmdlet 设置它。

您还可以这样做:

$global:VerbosePreference = 'continue'

比 PSDefaultParameters 工作得更好,因为它容忍没有 Verbose 参数的函数。