【问题标题】:When opening vscode using batch file, cmd opens and doesn't close使用批处理文件打开vscode时,cmd打开并且不关闭
【发布时间】:2019-06-22 00:43:35
【问题描述】:

当尝试使用批处理文件打开 vscode 文件夹时,Visual Studio 会打开该文件夹,但还会弹出一个 cmd 窗口,并且如果您使用退出命令则不会消失。

@echo off
start code "C:\GitHub\TestApp\testapp"
exit 

VSCode 正确打开,但此窗口也会打开

【问题讨论】:

  • 你试过没有start吗?

标签: batch-file visual-studio-code


【解决方案1】:

使用 VSCode 1.52.1,我可以在退出批处理脚本后不打开 cmd 窗口的情况下启动它的唯一方法是:

explorer.exe "%userprofile%\AppData\Local\Programs\Microsoft VS Code\Code.exe"

注意:它不涉及打开特定的本地目录来使用。但也许您可以找到解决方案,例如将文件夹保存为工作区或使用 Ctrl+R 打开最近的文件夹。另外,如果您只在该目录/工作区中工作,或者在关闭 VSCode 之前使用它,它将在下次启动时自动打开。

【讨论】:

  • 很高兴让 VS Code 重新打开上一个会话。
【解决方案2】:

这是因为您实际上是在调用位于[VSCodePath]\bin\code.cmd 的批处理文件code.cmd。 code.cmd 文件依次调用实际的 VSCode 可执行文件 code.exe

当使用start 命令调用批处理文件(.BAT 或.CMD)时,将创建一个新的 CMD 进程实例来处理批处理文件的执行,但它调用 CMD 进程时使用/K 切换而不是/C

例如start code.cmd 执行cmd /k code.cmd

/K 开关使新的 cmd 在完成批处理文件的执行后保持打开状态。

要解决,而不是直接将批处理文件提供给 start 命令,而是通过显式 CMD 调用来执行它:

@echo off
start cmd /C code "C:\GitHub\TestApp\testapp"
exit 

【讨论】:

  • 这个方法仍然会弹出窗口,但是它弹出一个没有目录的空白终端。关闭 Visual Studio 代码后它也会关闭
  • @TadasPetraitis,vs 代码运行时终端窗口保持打开的原因是您可能直接运行code.exe。在这种情况下,vs code 会将自己附加到父控制台,导致控制台保持打开状态,直到它关闭。要解决此问题,请尝试显式调用code.cmd:start cmd /C code.cmd .....,但这会导致终端窗口快速弹出并消失。如果不喜欢弹出式闪光灯,请将/b 开关添加到start 命令参数:start /b cmd /c code.cmd .....
  • 此外,您应该能够完全放弃start 命令并直接在您自己的批处理文件中调用code.cmd 文件:call code.cmd "C:\GitHub\TestApp\testapp"
【解决方案3】:

该 CMD 窗口与您刚刚打开的 VSCode 实例相关联。尝试关闭它将终止您启动的应用程序。 (在本例中为 VSCode)

start xxx xxx... 命令打开一个新的 cmd 终端来执行它的操作。即使出现了一个新的提示符,它本身可以作为一个普通的终端使用,VSCode 进程作为父进程与它有着不可分割的联系。

如果您的目标是不启动单独的 cmd 窗口,请运行:

start code /b "C:\GitHub\TestApp\testapp"

它只是在同一个窗口中运行命令。 VSCode 窗口仍然与当前 cmd 窗口无情地绑定,如果 cmd 窗口消失会关闭,但至少不会启动另一个 cmd 窗口。

Windows 无法从终端在后台启动程序。

【讨论】:

  • 但是我可以关闭 cmd 窗口并仍然使用 Visual Studio 代码实例
【解决方案4】:

如果所有描述的解决方案都不适合您,请尝试创建一个普通的 Windows 快捷方式到 "C:\Users\username\AppData\Local\Programs\Microsoft VS Code\Code.exe" C:\path-to-project-folder-or-file。

然后在您的.bat 或.cmd 脚本中调用此快捷方式(假设快捷方式名称为shortcut):

@echo off
start C:\path-to-shortcut-file\shortcut

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 2022-08-16
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多