【问题标题】:How to open Visual Studio Code through PowerShell and close PowerShell right after starting VSCode?如何通过 PowerShell 打开 Visual Studio Code 并在启动 VSCode 后立即关闭 PowerShell?
【发布时间】:2019-12-11 15:10:49
【问题描述】:

我想为特定文件夹打开 Visual Studio Code,我尝试运行该命令有效,但是当脚本打开 VSCode 时,它​​不会关闭 PowerShell 窗口。我想在脚本打开 VSCode 后立即关闭 PowerShell 窗口。但即使是显式退出调用也不起作用:

ii F:\c#
iex "& code ."
exit

这会打开 VSCode,但 Shell 窗口会一直打开,直到我关闭 VSCode。

【问题讨论】:

  • start -WindowStyle Hidden code .
  • 这很棒,即使它仍然在后台打开,但它不会打扰我,因为它是“不可见的”。非常感谢。
  • 貌似和this bug有关。
  • 似乎他们已经修复了这个错误。我只是尝试在使用code . 打开 vscode 后关闭 powershell,并且只关闭了 powershell:D

标签: powershell visual-studio-code


【解决方案1】:

这是 VS Code 后端的the bug。它没有必要将自己附加到控制台窗口,以防止它在 shell 应用程序退出后关闭。

它实际上与 PowerShell 无关。您将获得与 .bat/.cmd 文件相同的行为,其中包含单个 code 命令。如果您在资源管理器中双击它,那么控制台窗口将不会关闭,直到您关闭 VS Code,即使在任务管理器中您可以看到,用于执行 .bat/.cmd 文件的 CMD 实例不再存在。

要解决此错误,您可以为 VS Code 创建新的隐藏控制台窗口以附加到,而不是 PowerShell 实例的控制台窗口:

Start-Process -WindowStyle Hidden code .

【讨论】:

  • OP似乎并不关心cmd窗口I would like to close the PowerShell window...
  • @Moerwald “cmd 窗口”和“PowerShell 窗口”是不同的东西吗?据我所知,它们都使用操作系统提供的相同控制台窗口。
  • 幸运的是这个错误现在已经修复,它不再附加到控制台
【解决方案2】:

要使用 powerShell 打开您的项目,

  1. shift+右键后进入你的项目目录
  2. 选择“在此处打开 PowerShell 窗口”
  3. 只需输入code . 并按回车键。

谢谢,

【讨论】:

    【解决方案3】:

    例子:

    function code {
        $code_path="${Env:LOCALAPPDATA}\Programs\Microsoft VS Code\Code.exe"
        if ($args.Count -eq 0) {
            Start-Process -FilePath $code_path
        } else {
            Start-Process -FilePath $code_path -ArgumentList "$args"
        }
    }
    

    【讨论】:

      【解决方案4】:

      这对我有用:

      iex "code ."
      $host.SetShouldExit(0)
      

      【讨论】:

        【解决方案5】:

        您的问题是调用exit 将exit 脚本而不是您调用它的PowerShell 实例。您可以在脚本文件(或profile.ps1)中定义函数。之后,您可以通过以下方式获取脚本文件:

        . .\StartCode.ps1
        

        StartCode.ps1的内容:

        function Start-CodeInViaStartProcess {
            Start-Process -FilePath "code" -ArgumentList "."
            exit
        }
        

        由于StartCode.ps1 的内容现在来自您的 PowerShell 会话,exit 将终止实际的 PowerShell 会话。因此Start-CodeInViaStartProcess 应该终止您的 PowerShell 窗口。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-30
          • 2017-11-18
          • 1970-01-01
          • 1970-01-01
          • 2021-07-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多