在 powershell 脚本中
file.ps1
,我有
Write-Host "here is a host message"
Write-Verbose "here is a verbose message"
当使用 Powershell 7 在 Windows 终端中运行
file.ps1
时,并非所有消息都会写入控制台。
PS> .\file.ps1
here is a host message
我希望能够通过
-Verbose
,以便看到Write-Verbose
:
PS> .\file.ps1 -Verbose
here is a host message
here is a verbose message
脚本
file.ps1
需要什么才能启用详细消息?
[CmdletBinding()]
添加到脚本中以启用 CommonParameters:
脚本.ps1
[CmdletBinding()]
param()
Write-Host "here is a host message"
Write-Verbose "here is a verbose message"
来自主持人:
PS /> ./script.ps1 -Verbose
here is a host message
VERBOSE: here is a verbose message
如果您无法编辑脚本,您还可以在调用脚本的 shell 中将 VerbosePrefrence 设置为 Continue。
$VerbosePreference = "Continue"
这将为您要执行的所有函数启用详细输出。 查看Microsoft 帮助了解首选项。 还有很多有用的。
如果您只想为特定的 CmdLet 启用详细输出,则可以使用 $PSDefaultParameterValues 为此函数分配默认参数:
$PSDefaultParameterValues.Add("MyCmdLet:Verbose",$true)
这将为“MyCmdLet”启用详细输出。 但是,使用 $PSDefaultParameterValues 时要小心,因为你真的会把事情搞砸,特别是如果你调用其他脚本,因为默认参数值也会受到影响。