当尝试使用批处理文件打开vscode文件夹时,Visual Studio会使用该文件夹打开该文件夹,但是如果使用exit命令,则会弹出一个cmd窗口并且不会消失。
@echo off
start code "C:\GitHub\TestApp\testapp"
exit
VSCode可以正确打开,但是也会打开此窗口
答案 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.cmd
。 code.cmd
文件依次调用实际的VSCode可执行文件code.exe
使用.BAT
命令调用批处理文件(.CMD
或start
)时,将创建一个新的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
答案 2 :(得分:0)
如果上述所有解决方案都不适合您,请尝试使用普通的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
答案 3 :(得分:0)
使用VSCode 1.52.1,退出批处理脚本后无需打开cmd窗口即可启动它的唯一方法是:
explorer.exe "%userprofile%\AppData\Local\Programs\Microsoft VS Code\Code.exe"
注意:它不涉及打开要使用的特定本地目录。但是也许您可以找到解决方案,例如将文件夹另存为工作区或使用 Ctrl + R 打开最近的文件夹。另外,如果您仅在该目录/工作空间中工作,或者在关闭VSCode之前就使用它,则它将在下次启动时自动打开。