Batch файл запускается и в командной строке Visual Studio Code, и в командной строке Windows
Недавно купил ноутбук, перешёл с Windows 10 на 11, установил всякие "программерские штучки" и Visual Studio Code. Я создал файл newproj.bat, который автоматизирует создание проекта. Но когда я его открываю, он запускается и в командной строке Visual Studio Code, и в командной строке Windows.
newproj.bat:
@echo off
mkdir %1
@REM создаём папку с проектом;
cd %1
mkdir src
mkdir include
mkdir build
mkdir res
@REM создаём папки src, include, build, res;
NUL > CMakeLists.txt
cd src
NUL > main.cpp
@REM создаём файлы CMakeLists.txt и main.cpp;
start code main.cpp ..\CMakeLists.txt
@REM запускаем только что созданные файлы в Visual Studio Code;
cd ..\build
@REM переходим в папку build для удобства использования CMake;
На Windows 10 всё работало отлично, и я знаю, что это окно можно закрыть 1 щелчком мыши, но всё же, не хочется делать лишние телодвижение. Как предотвратить появление окна?
Ответы (1 шт):
Это происходит из-за строчки "start code".
Дело в том, что code здесь является пакетным файлом code.cmd со следующим содержимым:
@echo off
setlocal
set VSCODE_DEV=
set ELECTRON_RUN_AS_NODE=1
"%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node %*
endlocal
Не знаю я почему создатели VS Code не стали упаковывать её в один исполнимый файл, а сделали пакетный файл для запуска, но получается следующее:
Ваша команда start code запускает пакетный файл, этот пакетный файл запускает VS Code и завершает работу, но консольное окно остаётся потому что именно так работает запуск пакетных файлов командой start.
Исправить эту проблему можно заменив команду start на команду call, которая как раз и предназначена для вызова других пакетных файлов в том же окне:
call code main.cpp ..\CMakeLists.txt
