【问题标题】:Can I detect in Powershell that I am running in VS Code's integrated terminal?我可以在 Powershell 中检测到我在 VS Code 的集成终端中运行吗?
【发布时间】:2020-01-07 07:59:33
【问题描述】:

如果 Powershell 在 VS Code 集成终端中打开,我想修改 Windows 中的标准 PowerShell 配置文件(当您在 VS Code 中编辑例如 python 脚本,而不是 PS 脚本时,无论如何都会打开 ISE 配置文件)。

集成的 PowerShell 是否设置了一些环境变量?或者是否有某种方法可以使用特定配置文件而不是默认配置打开 Powershell?

谢谢

【问题讨论】:

  • 顺便说一句:您也可以重新配置文件关联以在 Visual Studio 代码中打开 PowerShell 脚本 (*.ps1),我建议这样做,因为 ISE is obsolescent并且已经并且永远不会支持 PowerShell Core (v6+)。

标签: powershell visual-studio-code


【解决方案1】:

VS Code 创建一个名为TERM_PROGRAM 的环境变量。您可以检查它的值 vscode,如下所示:

if($env:TERM_PROGRAM -eq 'vscode') {
  # do some stuff...
}

【讨论】:

  • 这确实是最可靠和跨平台的解决方案 - 不过令人惊讶的是,TERM_PROGRAM 是仅在 macOS 上的标准环境变量。但是,正如您所说,VSCode on demand 在 Windows 和 Linux 上创建它(并在 macOS 上对其进行修改),以及其他通常仅适用于 Mac 的 TERM_PROGRAM_VERSION(但 不是 i> 还有TERM_PROGRAM_SESSION)。
【解决方案2】:

如果您想检查您是否在 vscode 下的 PowerShell Integrated Console(附带 PowerShell 扩展)内运行,而不仅仅是在 vscode 下运行的任何 powershell 控制台,您可以:

if ($Host.Name -eq 'Visual Studio Code Host') {
  Write-Output 'PowerShell Integrated Console'
}

这很有意义,因为它是唯一提供完整调试器支持(例如中断异常体验)和调试器与 vscode 集成的 powershell 控制台主机。

你说你在 vscode 中运行时要修改配置文件,那么你应该检查一下(再次使用带有 PoweShell 扩展的 PowerShell 集成控制台):

PS> $PROFILE.CurrentUserCurrentHost
C:\Users\username\Documents\PowerShell\Microsoft.VSCode_profile.ps1

PS> $PROFILE.AllUsersCurrentHost
C:\Program Files\PowerShell\7\Microsoft.VSCode_profile.ps1

如果人们在 Visual Studio Code 中处理 PowerShell 代码,那么他们为什么不安装 PowerShell 扩展,它附带一个与 Visual Studio 代码完全集成的特定控制台,最重要的是,它为您提供了一个专门针对的配置文件转向 Visual Studio 代码?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多