是否可以从 powershell 配置文件中检测 powershell 是否已被交互调用?我看到有些人使用$host.name
但它似乎总是返回ConsoleHost
。
这是一个非常简单的方法,只要调用进程传递 -NonInteractive 参数,就可以将其放入 $PROFILE 中。它可能不适用于所有情况,但正如达拉斯上面提到的,在这个 Stackoverflow 问题上还有其他更复杂的方法。
if ([Environment]::GetCommandLineArgs().Contains('-NonInteractive')) {
$Global:InteractiveMode=$false
} else {
$Global:InteractiveMode=$true
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以在脚本中使用该变量来执行一些操作,例如从批处理作业输出中删除颜色代码。
if (-not $InteractiveMode) {
# For PWSH 7.2+
$PSStyle.OutputRendering = [System.Management.Automation.OutputRendering]::PlainText
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1884 次 |
最近记录: |