想象一下,如果您有一个包含单行代码的脚本,例如
ni -type file foobar.txt
其中 -verbose 标志不提供给 ni 命令。如果我要运行此脚本来强制详细程度,有没有办法在全局 PSSession 级别设置详细程度?我问的原因是我有一组大约 60 个相互依赖的脚本,并且这些脚本都不提供它们发出的任何命令的详细信息,我希望在调用主入口点 powershell 脚本时看到整个输出。
想象一下,如果您有一个包含单行代码的脚本,例如
ni -type file foobar.txt
其中 -verbose 标志不提供给 ni 命令。如果我要运行此脚本来强制详细程度,有没有办法在全局 PSSession 级别设置详细程度?我问的原因是我有一组大约 60 个相互依赖的脚本,并且这些脚本都不提供它们发出的任何命令的详细信息,我希望在调用主入口点 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 参数的函数。