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 参数的函数。
想象一下,如果您有一个包含单行代码的脚本,例如
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 参数的函数。