使用批处理文件打开vscode时,cmd打开且不关闭

时间:2019-06-22 00:43:35

标签: batch-file visual-studio-code

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

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

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

cmd window

4 个答案:

答案 0 :(得分:1)

该CMD窗口与您刚刚打开的VSCode实例相关联。尝试关闭它会终止您启动的应用程序。 (在此情况下为,VSCode

start xxx xxx...命令打开一个新的cmd终端以执行其操作。即使出现了一个新提示,它本身也可以用作普通终端,但VSCode进程作为父进程与它无可避免地链接在一起。

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

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

只是在同一窗口中运行命令。 VSCode窗口仍然无法绑定到当前cmd窗口,如果cmd窗口消失,但至少另一个cmd窗口没有启动,它将关闭。

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

答案 1 :(得分:0)

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

使用.BAT命令调用批处理文件(.CMDstart)时,将创建一个新的CMD流程实例来处理批处理文件的执行,但是使用/K开关而不是/C

调用CMD进程

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

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

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

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

答案 2 :(得分:0)

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

Shortcut properties window

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

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

答案 3 :(得分:0)

使用VSCode 1.52.1,退出批处理脚本后无需打开cmd窗口即可启动它的唯一方法是:

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

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