【发布时间】:2019-11-09 21:21:23
【问题描述】:
也许在 PowerShell 中没有办法做到这一点。
如果我有文件verboseTest.ps1
[CmdletBinding()] # CmdletBinding attribute enables -verbose flag
Param()
Write-Verbose 'verbose test'
如果我打电话给.\verboseTest.ps1,我没有看到任何预期的结果。
如果我打电话给.\verboseTest.ps1 -Verbose,我会看到输出。
VERBOSE:详细测试外部
正如预期的那样。
但如果我打电话给.\verboseTest.ps1 4>&1 我不会。详细流丢失。
现在,Info 的行为完全不同了。
我有文件infoTest.ps1,它的行为很正常。
[CmdletBinding()] # Add CmdletBinding attribute
Param()
Write-Information 'info test outer'
如果我打电话给.\infoTest.ps1,我没有看到任何预期的结果。
如果我调用.\infoTest.ps1 -InformationAction 'Continue',这类似于-Verbose 标志,它会成功并将info test outer 输出到控制台。
如果我调用.\infoTest.ps1 6>&1,它也将info test outer 输出到控制台!所以不知何故,“信息”流的行为与“详细”流完全不同。
信息流的行为是有意义的。写入信息命令写入流,我可以重定向它或查看或不查看我认为合适的。 “冗长”没有!我必须启用在输出中显示它才能重定向它?难道我做错了什么?这有什么意义?
我是否有启用详细首选项以重定向输出?如果是这样,我可以在方法内部执行此操作还是在全局会话范围内更改它?
【问题讨论】:
标签: powershell verbose