https://t.me/a248640develop/330
Продолжаю настраивать чистый и пустой vs code после переустановки windows 11.
Следующая проблема, с которой я столкнулся, оказалась в отсутствии папки bin компилятора в переменных среды (PATH), из-за этого не запускается скомпилированная им программа, так как она не полностью самодостаточна и зависит его его библиотек времени выполнения (runtime).
Странно, что я до сих пор не сделал публикацию в канале на тему "portable/standalone/переносных программ", так как я думал не неё сослаться или сделать отсылку.
Но в своей группе я неоднократно говорил насколько сильно мне нравится такой вид программ и наличие возможности выбора.
Проблема понятна, просто добавить папку в переменные среды и всё, но я, как любитель переносных программ и по возможности минимального вмешательства в систему подумал, а можно ли как-то обойтись без изменения PATH, чтобы программа работала?
Я знаю, что в терминале можно временно изменять переменные окружения.
Например, для cmd будет:
set path=path_to_compiler_bin;%path%.Это самый простой способ временно изменить PATH и запустить процесс с этими изменёнными переменными, и чтобы windows смогла найти все нужные exe и dll файлы.
Я подумал, а можно ли как-то в vs code перед запуском терминала выполнить какую-то свою команду или запустить скрипт?
Как активация виртуального окружения python, например.
Да, можно, для этого есть настройка
"terminal.integrated.shellArgs.windows": [""], но она, к сожалению или к счастью, стала устаревшей и была удалена.На замену ей пришли профили терминала:
"terminal.integrated.profiles.NNN", в которых можно не только создавать свои, но и переопределять настройки для стандартных, можно поменять не только аргументы, которые мне были и нужны, но и путь до исполняемого файла и даже иконку.В настройки уровня пользователя, проекта или решения нужно добавить следующий текст:
// settings.json
{
"terminal.integrated.profiles.windows":
{
"Command Prompt":
{
"path":
[
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe",
],
"args":
[
"/k",
"echo hello & echo world & prompt $g$s",
],
"icon": "terminal-cmd",
},
},
"terminal.integrated.defaultProfile.windows": "Command Prompt",
}
И в итоге вместо стандартного содержимого терминала:
Microsoft Windows [Version 10.0.22631.4602]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
C:\Users\user>_
В моём случае будет:
hello
world
> _
Я для примера решил вывести текст hello и world на разных строках и изменить префикс ввода (не знаю как на русском это назвать лучше).
Любителям "а как убрать путь из консоли" посвящается).
Вместо команды "
echo hello & echo world & prompt $g$s" можно сделать вызов любого скрипта, даже vcvarsall.bat, что позволит легко использовать компилятор cl.exe (MSVC).ссылка на канал | ссылка на группу


