我有一个在Powershell 3.0中运行的简单脚本:# Testing write-debug [CmdletBinding()] param() write-debug "Debug message" Write-Output "General output"
当我不带参数运行它时,我得到了所需的输出:
PS C:\scripts\Test> .\debugtest.ps1
General output
当我使用-debug
参数运行它时,Powershell在打印调试消息后要求我确认:
PS C:\scripts\Test> .\debugtest.ps1 -Debug
DEBUG: Debug message
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"):
General output
为什么要求我确认?write-debug
不应该简单地编写调试输出并继续脚本吗?
更新:将$DebugPreference
设置为SilentlyContinue
:
PS C:\scripts\Test> $DebugPreference
SilentlyContinue
PS C:\scripts\Test> .\debugtest.ps1 -Debug
DEBUG: Debug message
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"):
General output
3条答案
按热度按时间rqmkfv5c1#
听起来您的$DebugPreference变量设置为“查询”。
从获取帮助about_preference_variables:
Edit:-Debug也是cmdlet公共参数,通过添加CmdletBinding(),它也是脚本的公共参数。
从获取帮助about_common_parameters:
常见参数描述
h22fl7wq2#
我认为以下函数的第二个参数声明可以添加到任何函数中
}
pprl5pva3#
您可以在脚本中覆盖
$DebugPreference
: