Как открыть файл и папку в VSCode через проводник.

Смотреть новые посты

как сделать так чтобы vscode при открытии файла из проводника открывала и его папку:

Скачать ZIP “open_vscode_with_workspace.bat”

Показать код
@echo off

:: Проверка прав администратора (если нужно) :: net session >nul 2>&1 :: if %errorlevel% neq 0 ( :: echo Запрашиваю права администратора… :: powershell -Command "Start-Process '%~f0' -ArgumentList '"%~1"' -Verb RunAs" :: exit /b :: )

:: Получаем полный путь к файлу set "file=%~1" for %%F in ("%file%") do set "folder=%%~dpF" set "folder=%folder:~0,-1%"

:: Фиксированный список рабочих пространств set "ws1=D:\Mitulka\www\gorshochek-by\gorshochek-by-src\gorshochek-by-src.code-workspace" set "ws1_root=D:\Mitulka\www\gorshochek-by\gorshochek-by-src" set "ws2=c:\xampp\htdocs\php-developer-base\php-developer-base.code-workspace" set "ws2_root=C:\xampp\htdocs" set "ws3=c:\hugo\lyasneby\lyasneby.code-workspace" set "ws3_root=C:\hugo\lyasneby" set "ws4=D:\Mitulka\www\pyatok-net\pyatok-net-src\pyatok-net-src.code-workspace" set "ws4_root=D:\Mitulka\www\pyatok-net\pyatok-net-src"

:: Проверяем, относится ли папка к ws1 echo %folder%| findstr /c:"%ws1_root%" >nul if %errorlevel% equ 0 ( set "workspace=%ws1%" goto :run_vscode )

:: Проверяем, относится ли папка к ws2 echo %folder%| findstr /c:"%ws2_root%" >nul if %errorlevel% equ 0 ( set "workspace=%ws2%" goto :run_vscode )

:: Проверяем, относится ли папка к ws3 echo %folder%| findstr /c:"%ws3_root%" >nul if %errorlevel% equ 0 ( set "workspace=%ws3%" goto :run_vscode )

:: Проверяем, относится ли папка к ws4 echo %folder%| findstr /c:"%ws4_root%" >nul if %errorlevel% equ 0 ( set "workspace=%ws4%" goto :run_vscode )

:: Fallback: открываем папку echo No workspace matched, opening folder instead set "workspace=%folder%"

:run_vscode echo File: "%file%" echo Workspace or Folder: "%workspace%" start "" "c:\Program Files\Microsoft VS Code\Code.exe" -r "%workspace%" "%file%" exit ::pause

Диалог с Grokом

Чтобы Visual Studio Code (VS Code) при открытии файла из проводника автоматически открывала и его папку в боковой панели, можно настроить поведение редактора. По умолчанию VS Code открывает только сам файл, но есть способ сделать так, чтобы он открывал папку, содержащую этот файл. Вот пошаговая инструкция: Способ 1: Использовать настройку “Open Folder” через командную строку Проверьте ассоциацию файлов: Убедитесь, что файлы, которые вы открываете (например, .txt, .js, .py), ассоциированы с VS Code в вашей операционной системе (Windows, macOS или Linux).

Настройте запуск через терминал: Когда вы открываете файл из проводника, VS Code запускается с этим файлом как аргументом. Чтобы он открывал папку, нужно передать путь к папке вместо файла или в дополнение к нему.

Используйте скрипт или настройку системы: На Windows можно создать скрипт (например, через PowerShell или .bat), который будет извлекать путь к папке из пути файла и запускать VS Code с командой code –folder-uri <путь_к_папке>.

Пример для .bat: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” “C:\путь\к\vscode\code.exe” “%folder%” –goto “%file%”

Сохраните это как open_vscode_with_folder.bat, затем в свойствах ассоциации файлов укажите этот скрипт вместо прямого запуска code.exe.

Ассоциация в системе: В Windows: зайдите в “Параметры” → “Приложения” → “Приложения по умолчанию” → выберите VS Code → настройте ассоциацию файлов через скрипт.

Способ 2: Использовать расширение VS Code Установите расширение, например, “Open Folder Context Menus for VS Code” (если доступно в Marketplace).

Настройте его так, чтобы при открытии файла через контекстное меню проводника автоматически открывалась папка.

Способ 3: Ручной подход Если вы открываете файл из проводника, а папка не отображается в боковой панели: Щелкните правой кнопкой мыши на открытом файле в заголовке вкладки в VS Code.

Выберите “Reveal in Explorer” (или “Показать в проводнике”) — это выделит файл в папке.

Затем перетащите эту папку в окно VS Code, чтобы открыть её как рабочую область.

Примечание Полностью автоматизировать этот процесс без скриптов или сторонних утилит сложно, так как поведение зависит от того, как проводник передаёт путь в VS Code.

Если вы хотите уточнить операционную систему (Windows, macOS, Linux), я могу дать более точные инструкции.

Какой из способов вам больше подходит? Или нужна помощь с конкретной настройкой?

скрипт разделяет слова в имени файла и открывает соответствующее их количеству вкладки и не открывает папку!

Кажется, есть недоразумение. Судя по вашему описанию, текущий скрипт (возможно, тот, что вы пытались использовать) разделяет имя файла по словам и открывает несколько вкладок в VS Code, вместо того чтобы открыть папку, как вы хотели. Давайте исправим это и создадим правильный скрипт, который будет открывать папку, содержащую файл, а не плодить вкладки. Предполагаю, что вы работаете на Windows (так как упомянули проводник). Вот исправленный подход: Исправленный скрипт для Windows (.bat) Этот скрипт: Извлекает путь к папке из переданного файла.

Открывает VS Code с этой папкой в качестве рабочей области.

Не разделяет имя файла и не создаёт лишние вкладки.

bat

@echo off set “file=%~1” :: Получаем полный путь к файлу for %%F in ("%file%") do set “folder=%%~dpF” :: Извлекаем путь к папке “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” :: Открываем папку в VS Code

Как использовать: Сохраните этот код в файл, например, open_folder_in_vscode.bat.

Убедитесь, что путь к Code.exe правильный (может отличаться в зависимости от того, куда установлен VS Code, например, C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code\Code.exe для пользовательской установки).

Щелкните правой кнопкой мыши на любом файле в проводнике → “Открыть с помощью” → “Выбрать другое приложение” → укажите этот .bat-файл как программу для открытия.

Что произойдёт: Когда вы откроете файл через проводник, VS Code запустится и откроет папку, содержащую этот файл, в боковой панели (Explorer).

Сам файл не будет автоматически открыт во вкладке, но вы сможете выбрать его вручную из списка файлов в папке.

Если нужно открыть и файл, и папку Если вы хотите, чтобы VS Code открывал папку в боковой панели, а также сразу открывал сам файл во вкладке, используйте такой вариант: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%”

Флаг –goto указывает VS Code открыть конкретный файл в дополнение к папке.

Проверка и настройка Проверьте, работает ли скрипт, дважды щёлкнув на нём с каким-нибудь файлом (передайте путь к файлу вручную для теста, например: open_folder_in_vscode.bat “C:\test\example.txt”).

Если что-то не работает, уточните: Какой у вас текущий скрипт (если он отличается)?

Какую ошибку вы видите?

Используете ли вы Windows, macOS или Linux?

Если вы имели в виду что-то другое или у вас уже есть конкретный скрипт, который ведёт себя неправильно, пожалуйста, покажите его, и я помогу исправить!

DeprecationWarning: Uncaught N-API callback exception detected, please run node with option –force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly. (Use Code –trace-deprecation … to show where the warning was created)

Ваше сообщение указывает на предупреждение DeprecationWarning, связанное с необработанным исключением в N-API callback в среде Node.js, на которой работает Visual Studio Code. Это предупреждение не связано напрямую с открытием папки или файла, а скорее с тем, как VS Code (или его расширения) взаимодействует с Node.js. Давайте разберёмся и решим проблему. Что означает это предупреждение? N-API: Это API для интеграции нативных модулей с Node.js. VS Code использует Node.js как основу, и некоторые расширения могут вызывать нативный код через N-API.

Uncaught N-API callback exception: Где-то в коде (скорее всего, в расширении или самом VS Code) возникло необработанное исключение в нативной части.

Рекомендация: Предлагается запустить Node.js с флагом –force-node-api-uncaught-exceptions-policy=true, чтобы явно обрабатывать такие исключения, или использовать –trace-deprecation, чтобы отследить источник проблемы.

Почему это появляется? Возможно, вы используете устаревшее расширение или версию VS Code, которая вызывает конфликт с текущей версией Node.js.

Это может быть связано с вашим скриптом или способом запуска VS Code.

Как исправить?

  1. Отследить источник предупреждения Запустите VS Code с флагом –trace-deprecation, чтобы понять, откуда исходит предупреждение: Откройте терминал (например, CMD или PowerShell на Windows).

Выполните: bash

“C:\Program Files\Microsoft VS Code\Code.exe” –trace-deprecation

Откройте файл через проводник или ваш скрипт и посмотрите в консоли, где именно возникает предупреждение (например, в каком расширении или модуле).

  1. Обновить VS Code Убедитесь, что у вас установлена последняя версия VS Code: Откройте VS Code → “Справка” (Help) → “О программе” (About), проверьте версию.

Если она устарела, скачайте и установите свежую версию с официального сайта.

  1. Проверить расширения Проблема может быть в одном из установленных расширений: Отключите все расширения: Нажмите Ctrl+Shift+P (или Cmd+Shift+P на macOS), введите Extensions: Disable All Installed Extensions.

Перезапустите VS Code и проверьте, появляется ли предупреждение.

Если оно исчезло, включайте расширения по одному, чтобы найти виновника, и обновите или удалите проблемное расширение.

  1. Исправить запуск через скрипт Если вы используете .bat-скрипт, добавьте флаг –force-node-api-uncaught-exceptions-policy=true для подавления предупреждения (хотя это временное решение): bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –force-node-api-uncaught-exceptions-policy=true

  1. Игнорировать предупреждение (не рекомендуется) Если это не мешает работе, можно просто игнорировать предупреждение, так как это не ошибка, а уведомление о deprecated-функциональности. Однако лучше разобраться в причине, чтобы избежать потенциальных проблем в будущем. Связь с вашей задачей Судя по всему, это предупреждение всплыло, когда вы пытались использовать скрипт для открытия папки в VS Code. Оно не ломает функциональность напрямую, но может указывать на проблему совместимости. Если папка всё ещё не открывается, уточните: Какой именно скрипт вы используете сейчас?

Что происходит после запуска (открываются вкладки, ничего не происходит, появляется только предупреждение)?

Давайте решим это вместе — дайте больше деталей, и я помогу настроить всё как надо!

Unexpected token ’trace-deprecation’ in expression or statement.

Ошибка Unexpected token ’trace-deprecation’ in expression or statement возникает, потому что вы, скорее всего, пытаетесь выполнить команду с флагом –trace-deprecation в PowerShell или CMD неправильно. В Windows синтаксис командной строки чувствителен к тому, как вы передаёте аргументы. Давайте разберёмся и исправим. Почему возникает ошибка? В PowerShell или CMD флаг –trace-deprecation нужно передавать как часть команды запуска программы (в данном случае Code.exe), а не как отдельное выражение.

Если вы просто написали Code.exe –trace-deprecation без правильного пути или в неправильном контексте, интерпретатор мог посчитать это некорректным синтаксисом.

Как правильно запустить VS Code с –trace-deprecation В CMD (Командная строка): Откройте CMD.

Укажите полный путь к Code.exe и добавьте флаг: cmd

“C:\Program Files\Microsoft VS Code\Code.exe” –trace-deprecation

Убедитесь, что путь к Code.exe соответствует вашей установке (например, если VS Code установлен для пользователя, путь может быть C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code\Code.exe).

В PowerShell: Откройте PowerShell.

Используйте тот же синтаксис: powershell

& “C:\Program Files\Microsoft VS Code\Code.exe” –trace-deprecation

Здесь & — это оператор вызова, который нужен в PowerShell для запуска исполняемых файлов с аргументами.

В вашем .bat-скрипте: Если вы хотите добавить –trace-deprecation в скрипт, вот как это сделать: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation

Сохраните файл, запустите его с аргументом (например, script.bat “C:\test\example.txt”), и VS Code откроется с трассировкой предупреждений.

Что делать дальше? Запустите команду или скрипт с –trace-deprecation.

Откройте файл через проводник или скрипт.

Посмотрите в консоль вывода VS Code (или в терминале, если он открыт) — там должна появиться информация о том, где именно возникает DeprecationWarning.

Если ошибка сохраняется Если вы всё ещё видите Unexpected token или что-то другое: Уточните, где и как вы выполняете команду (CMD, PowerShell, в скрипте).

Покажите точную команду, которую вы ввели, чтобы я мог увидеть, где именно синтаксис сломался.

Связь с вашей исходной задачей Вы хотели, чтобы VS Code открывал папку при открытии файла из проводника. Если скрипт уже работает (открывает папку), но появляется это предупреждение, то –trace-deprecation поможет найти его источник. Если же папка всё ещё не открывается, давайте проверим ваш текущий скрипт — покажите его, и я помогу донастроить. Какой у вас сейчас результат? Работает ли открытие папки, или проблема только в этом предупреждении?

все также открывает вкладки по каждому слову из файла папку не открывает

Похоже, ваш текущий скрипт всё ещё интерпретирует имя файла как набор слов и открывает вкладки для каждого слова вместо того, чтобы открывать папку. Это может происходить из-за неправильной обработки пути или из-за того, что аргументы передаются в VS Code некорректно. Давайте разберёмся и исправим это раз и навсегда. Почему открываются вкладки по словам? Если имя файла содержит пробелы (например, My File.txt), и путь передаётся без кавычек, командная строка может разделить его на части (My и File.txt), что приводит к открытию нескольких вкладок.

VS Code интерпретирует каждый “токен” как отдельный файл для открытия, если аргументы не экранированы правильно.

Исправленный скрипт Вот рабочий .bat-скрипт, который: Извлекает путь к папке из файла.

Открывает эту папку в VS Code.

(Опционально) открывает сам файл в одной вкладке.

bat

@echo off set “file=%~1” :: Получаем полный путь к файлу, переданный из проводника for %%F in ("%file%") do set “folder=%%~dpF” :: Извлекаем путь к папке (dp = drive + path) “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” :: Открываем только папку

Если нужно открыть и файл, и папку: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%”

Ключевые моменты: “%file%” и “%folder%” в кавычках, чтобы избежать разделения пути на слова при наличии пробелов.

–goto “%file%” указывает VS Code открыть конкретный файл в дополнение к папке.

Путь к Code.exe должен быть правильным (проверьте, где у вас установлен VS Code).

Как протестировать: Сохраните скрипт как open_folder.bat.

Вручную протестируйте его в CMD: cmd

open_folder.bat “C:\Путь\К\Вашему\Файлу.txt”

Убедитесь, что: Открывается VS Code.

В боковой панели (Explorer) отображается папка, содержащая файл.

Лишние вкладки не появляются.

Настройка в проводнике: Щелкните правой кнопкой мыши на любом файле (например, .txt) → “Открыть с помощью” → “Выбрать другое приложение”.

Укажите путь к вашему .bat-скрипту (например, C:\Scripts\open_folder.bat).

Установите галочку “Всегда использовать это приложение” и сохраните.

Если проблема сохраняется: Если скрипт всё ещё открывает вкладки по словам: Покажите точный код вашего текущего скрипта, который вызывает эту проблему.

Укажите пример имени файла (с пробелами или без), чтобы я могла понять, как он обрабатывается.

Сообщите, что именно отображается в VS Code после запуска.

Добавление –trace-deprecation (если нужно): Если вы хотите одновременно решить вопрос с DeprecationWarning, добавьте флаг: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation

Пожалуйста, протестируйте этот скрипт и дайте знать, что получилось. Если что-то не работает, я помогу донастроить!

если запускаю файл с именем без пробелов запускается vscode но ни файл не открывается ни папка в консоли пишет: [main 2025-03-14T09:59:56.490Z] update#setState idle (node:7108) [DEP0168] DeprecationWarning: Uncaught N-API callback exception detected, please run node with option –force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly. (Use Code –trace-deprecation … to show where the warning was created) [main 2025-03-14T10:00:26.496Z] update#setState checking for updates [main 2025-03-14T10:00:26.952Z] update#setState idle [main 2025-03-14T10:00:58.663Z] Extension host with pid 2576 exited with code: 0, signal: unknown.

Судя по вашему описанию и выводу в консоли, проблема в том, что скрипт запускает VS Code, но ни папка, ни файл не открываются, а также появляется DeprecationWarning. Давайте разберёмся шаг за шагом и исправим это. Анализ ситуации VS Code запускается, но ничего не открывает: Возможно, путь к папке или файлу передаётся некорректно, и VS Code не может их найти.

Или аргументы ("%folder%" или –goto “%file%”) не обрабатываются из-за ошибки в скрипте.

Вывод в консоли: [update#setState idle] и [update#setState checking for updates] — это стандартные логи VS Code, они говорят, что редактор запустился и работает в режиме ожидания.

[DEP0168] DeprecationWarning: Это предупреждение о необработанном исключении в N-API, как мы обсуждали ранее. Оно может быть связано с расширениями или самим запуском.

[Extension host with pid 2576 exited with code: 0, signal: unknown]: Хост расширений завершился, что может указывать на сбой в работе какого-то расширения или на то, что VS Code закрылся из-за ошибки.

Файл без пробелов: Вы сказали, что проблема возникает с именем файла без пробелов. Это исключает разделение имени на токены, но может указывать на проблему с самим путём.

Исправление скрипта Вот обновлённый .bat-скрипт с дополнительной отладкой, чтобы убедиться, что пути передаются правильно: bat

@echo off set “file=%~1” :: Получаем полный путь к файлу for %%F in ("%file%") do set “folder=%%~dpF” :: Извлекаем путь к папке

:: Отладка: выводим пути в консоль, чтобы проверить echo File: “%file%” echo Folder: “%folder%”

:: Запускаем VS Code с папкой и файлом “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%”

:: Пауза, чтобы увидеть вывод перед закрытием консоли pause

Что делает этот скрипт: set “file=%~1”: Берёт путь к файлу, переданный из проводника.

for %%F in ("%file%") do set “folder=%%~dpF”: Извлекает путь к папке (включая диск и директорию).

echo: Выводит пути в консоль для проверки.

Запускает VS Code с папкой и файлом.

pause: Оставляет консоль открытой, чтобы вы могли увидеть результат.

Тестирование Сохраните скрипт как open_folder.bat.

Запустите его вручную из CMD с тестовым файлом: cmd

open_folder.bat “C:\Test\example.txt”

Посмотрите в консоль: Что выводится для File: и Folder:?

Открывается ли VS Code с папкой в боковой панели и файлом во вкладке?

Возможные проблемы и решения

  1. Неправильный путь к Code.exe Проверьте, где установлен VS Code. Если он не в “C:\Program Files\Microsoft VS Code\Code.exe”, измените путь в скрипте. Например: Для пользовательской установки: “C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code\Code.exe”.

  2. Путь к файлу или папке не распознаётся Если File: или Folder: пустые или неправильные в выводе, значит, %~1 не передаётся корректно. Убедитесь, что вы запускаете скрипт через “Открыть с помощью” или вручную с правильным аргументом.

  3. VS Code игнорирует аргументы Если пути правильные, но ничего не открывается, попробуйте упростить команду: bat

“C:\Program Files\Microsoft VS Code\Code.exe” “%folder%”

Это откроет только папку. Если работает, добавьте –goto “%file%” обратно.

  1. DeprecationWarning и сбой хоста расширений Добавьте –trace-deprecation для диагностики: bat

“C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation

Если появляется больше информации о предупреждении, сообщите мне, и мы разберёмся с причиной (скорее всего, расширение или баг в VS Code).

Что дальше? Протестируйте скрипт и сообщите: Что выводится в консоль (File: и Folder:)?

Открывается ли VS Code, и что именно отображается (папка, файл, ничего)?

Если проблема остаётся, укажите имя файла и его полный путь (например, C:\Test\example.txt).

Я помогу донастроить скрипт или найти альтернативное решение, чтобы всё заработало как надо!

[main 2025-03-14T10:06:27.899Z] update#setState idle (node:10312) [DEP0168] DeprecationWarning: Uncaught N-API callback exception detected, please run node with option –force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly. (Use Code –trace-deprecation … to show where the warning was created) [main 2025-03-14T10:06:47.396Z] update#setState checking for updates [main 2025-03-14T10:06:47.839Z] update#setState idle [main 2025-03-14T10:06:57.909Z] update#setState checking for updates [main 2025-03-14T10:06:58.107Z] update#setState idle [main 2025-03-14T10:07:01.726Z] Extension host with pid 10120 exited with code: 0, signal: unknown.

Ваш вывод из консоли показывает, что VS Code запускается, но ни папка, ни файл не открываются, а также появляется DeprecationWarning и сообщение о завершении хоста расширений. Это указывает на то, что проблема может быть либо в самом скрипте, либо в том, как VS Code обрабатывает переданные аргументы. Давайте решим это шаг за шагом. Анализ вывода [main 2025-03-14T10:06:27.899Z] update#setState idle и другие логи update#setState: VS Code запускается и переходит в режим ожидания, но ничего не открывает. Это значит, что он либо не получил корректные аргументы, либо не смог их обработать.

[DEP0168] DeprecationWarning: Предупреждение о необработанном исключении в N-API. Оно может быть связано с расширением или с тем, как VS Code запускается через скрипт.

Extension host with pid 10120 exited with code: 0, signal: unknown: Хост расширений завершился неожиданно. Это может быть связано с ошибкой в аргументах или с конфликтом в настройках/расширениях.

Проблема с вашим скриптом Вы не показали, что именно выводится для File: и Folder: из отладочного echo в последнем предложенном скрипте. Без этой информации сложно сказать, правильно ли формируются пути. Предполагаю, что: Либо пути пустые/неверные.

Либо VS Code не распознаёт аргументы из-за ошибки в синтаксисе.

Проверка и исправление Давайте убедимся, что скрипт работает правильно. Вот что нужно сделать:

  1. Проверьте текущий скрипт Используйте этот код с отладкой: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF”

:: Отладка echo File: “%file%” echo Folder: “%folder%”

:: Запуск VS Code “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%”

pause

Запустите скрипт вручную из CMD: cmd

open_folder.bat “C:\Test\example.txt”

Сообщите, что выводится в консоль для File: и Folder:.

  1. Если пути пустые Если File: или Folder: пустые, значит, %~1 не передаётся из проводника. Проверьте: Запускаете ли вы файл через “Открыть с помощью” и выбран ли этот скрипт.

Укажите точный путь к файлу в тесте (например, “C:\Users\ВашПользователь\Documents\example.txt”).

  1. Если пути правильные, но ничего не открывается Если File: и Folder: выводят корректные значения (например, File: “C:\Test\example.txt”, Folder: “C:\Test"), но VS Code всё равно ничего не открывает: Попробуйте запустить команду вручную в CMD: cmd

“C:\Program Files\Microsoft VS Code\Code.exe” “C:\Test” –goto “C:\Test\example.txt”

Если это работает, проблема в самом .bat-скрипте (возможно, кавычки или переменные обрабатываются некорректно).

  1. Устранение DeprecationWarning Добавьте –trace-deprecation, чтобы понять источник предупреждения: bat

@echo off set “file=%~1” for %%F in ("%file%”) do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation pause

После запуска посмотрите в консоль — должна появиться дополнительная информация о том, где возникает предупреждение (например, в каком модуле или расширении).

  1. Проверка хоста расширений Сбой хоста расширений может ломать поведение VS Code. Попробуйте: Запустить VS Code с отключёнными расширениями: bat

“C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –disable-extensions

Если это решает проблему, виновато одно из расширений. Включайте их по одному через интерфейс VS Code, чтобы найти проблемное.

Что мне нужно от вас Чтобы точно исправить ситуацию, пожалуйста: Покажите вывод File: и Folder: из консоли после запуска скрипта.

Укажите точное имя файла и его путь (например, C:\Test\example.txt).

Сообщите, что происходит в VS Code после запуска (открывается пустое окно, закрывается, что-то ещё?).

Альтернативный подход Если скрипт продолжает сбоить, можно попробовать: Использовать PowerShell вместо .bat: powershell

$file = $args[0] $folder = Split-Path -Path $file -Parent & “C:\Program Files\Microsoft VS Code\Code.exe” $folder –goto $file

Сохраните как open_folder.ps1 и настройте проводник на запуск через PowerShell.

Давайте протестируем и найдём рабочее решение. Жду вашего ответа с деталями!

PS C:> cd .\Vault13 PS C:\Vault13> .\open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md” File: “C:\Vault13\PRAndSchemaRecipe.md” Folder: “C:\Vault13”[main 2025-03-14T10:11:30.321Z] update#setState idle (node:5992) [DEP0168] DeprecationWarning: Uncaught N-API callback exception detected, please run node with option –force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly. (Use Code –trace-deprecation … to show where the warning was created) [main 2025-03-14T10:11:58.054Z] Extension host with pid 3520 exited with code: 0, signal: unknown. Для продолжения нажмите любую клавишу . . .

Спасибо за предоставленные данные! Теперь у нас есть чёткая картина: пути формируются правильно, но VS Code всё равно не открывает ни папку, ни файл. Давайте разберёмся и исправим это. Анализ Вывод скрипта: File: “C:\Vault13\PRAndSchemaRecipe.md” — путь к файлу корректен.

Folder: “C:\Vault13" — путь к папке тоже верный.

Это значит, что проблема не в формировании путей в скрипте, а в том, как VS Code их обрабатывает.

Логи VS Code: [main 2025-03-14T10:11:30.321Z] update#setState idle — VS Code запускается, но остаётся в режиме ожидания.

[DEP0168] DeprecationWarning — предупреждение о необработанном исключении в N-API.

[Extension host with pid 3520 exited with code: 0, signal: unknown] — хост расширений завершает работу, что может быть причиной сбоя.

Поведение: VS Code открывается, но окно пустое (ни папка, ни файл не отображаются).

Это указывает на то, что аргументы ("%folder%” и –goto “%file%”) либо не доходят до VS Code, либо он их игнорирует из-за внутренней ошибки.

Исправление

  1. Проверка базового запуска Сначала убедимся, что VS Code вообще может открыть папку и файл вручную: Введите в CMD или PowerShell: cmd

“C:\Program Files\Microsoft VS Code\Code.exe” “C:\Vault13” –goto “C:\Vault13\PRAndSchemaRecipe.md”

Если это работает (открывается папка в боковой панели и файл во вкладке), проблема в скрипте. Если нет, проблема в самом VS Code.

  1. Упрощённый скрипт Попробуем упростить скрипт, чтобы исключить лишние факторы: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” pause

Запустите: cmd

.\open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Проверьте, открывается ли папка C:\Vault13 в боковой панели. Если да, добавим –goto “%file%” обратно.

  1. Добавление диагностики предупреждения Чтобы понять источник DeprecationWarning, добавим –trace-deprecation: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation pause

Запустите и посмотрите в консоль. Должна появиться строка вроде (node:5992) [DEP0168] DeprecationWarning: … at <путь_или_модуль>). Сообщите, что там указано.

  1. Отключение расширений Сбой хоста расширений может ломать поведение. Попробуйте: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –disable-extensions pause

Если это работает, виновато одно из расширений. Включите их по одному в VS Code, чтобы найти проблемное.

  1. Проверка пути к Code.exe Убедитесь, что путь в скрипте соответствует вашей установке: Если VS Code установлен для пользователя, путь может быть:

“C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code\Code.exe”

Замените в скрипте и протестируйте.

Что мне нужно от вас Протестируйте варианты выше и сообщите: Работает ли запуск вручную из CMD (шаг 1)?

Открывается ли папка с упрощённым скриптом (шаг 2)?

Что выводит –trace-deprecation (шаг 3)?

Помогает ли –disable-extensions (шаг 4)?

Какой у вас точный путь к Code.exe (проверьте в проводнике)?

Предварительный вывод Скорее всего, проблема в том, что: VS Code сбоит из-за какого-то расширения (судя по хосту расширений).

Или аргументы из скрипта доходят некорректно из-за особенностей окружения.

Как только вы предоставите результаты тестов, я предложу окончательное решение!

File: “C:\Vault13\PRAndSchemaRecipe.md” Folder: “C:\Vault13”[main 2025-03-14T10:20:30.854Z] update#setState idle (node:8004) [DEP0168] DeprecationWarning: Uncaught N-API callback exception detected, please run node with option –force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly. (Use Code –trace-deprecation … to show where the warning was created)

Спасибо за данные! Пути в скрипте формируются правильно (File: “C:\Vault13\PRAndSchemaRecipe.md”, Folder: “C:\Vault13"), но VS Code всё ещё не открывает ни папку, ни файл, а в консоли появляется только DeprecationWarning. Это указывает на то, что проблема либо в самом VS Code, либо в том, как он обрабатывает аргументы из скрипта. Давайте найдём решение. Анализ текущего результата Пути корректны: File и Folder выводятся правильно, значит, скрипт передаёт аргументы.

VS Code запускается, но ничего не открывает: [main 2025-03-14T10:20:30.854Z] update#setState idle — редактор стартует, но остаётся пустым.

Нет упоминания об открытии папки или файла в логах.

DeprecationWarning: Предупреждение присутствует, но без –trace-deprecation мы не видим, откуда оно исходит.

Хоста расширений в этот раз нет в выводе (возможно, он не успел запуститься или сбой не произошёл).

Текущий скрипт Судя по выводу, вы использовали что-то вроде: bat

@echo off set “file=%~1” for %%F in ("%file%”) do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” pause

Но результат не тот, что ожидается. Шаги для решения

  1. Ручная проверка команды Давайте исключим проблему со скриптом. Выполните в CMD: cmd

“C:\Program Files\Microsoft VS Code\Code.exe” “C:\Vault13” –goto “C:\Vault13\PRAndSchemaRecipe.md”

Если это открывает папку C:\Vault13 в боковой панели и файл PRAndSchemaRecipe.md во вкладке, значит, VS Code работает нормально, и проблема в передаче аргументов через .bat.

  1. Исправленный скрипт с отладкой Попробуйте этот вариант: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” echo Running: “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” pause

Добавлен echo команды, чтобы видеть, что именно запускается.

Запустите: cmd

.\open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Проверьте, совпадает ли строка Running: с той, что работает вручную.

  1. Проверка пути к Code.exe Если шаг 1 не работает, возможно, путь к Code.exe неверный. Найдите точный путь: Найдите VS Code в проводнике (обычно C:\Program Files\Microsoft VS Code\ или C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code).

Обновите скрипт с правильным путём, например: bat

“C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%”

  1. Добавление –trace-deprecation Чтобы понять источник предупреждения: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation pause

Запустите и посмотрите, добавляется ли информация о том, где возникает DeprecationWarning (например, путь к модулю или расширению).

  1. Минимальная проверка Попробуйте открыть только папку: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” pause

Если папка открывается, проблема в –goto “%file%”.

Что мне нужно от вас Протестируйте шаги и сообщите: Работает ли ручной запуск из CMD (шаг 1)?

Что выводит скрипт из шага 2 (особенно строка Running:)?

Какой у вас точный путь к Code.exe (проверьте вручную)?

Что добавляет –trace-deprecation в вывод (шаг 4)?

Открывается ли папка в шаге 5?

Предварительный вывод Если шаг 1 работает, проблема в обработке переменных в .bat.

Если шаг 1 не работает, проблема в VS Code (возможно, баг или конфликт с настройками/расширениями).

Жду ваших результатов, и мы добьёмся, чтобы всё заработало!

как запустить этот bat от имени администратора?

Чтобы запустить .bat-файл от имени администратора в Windows, есть несколько способов. Это может быть полезно, если VS Code или доступ к файлам требует повышенных прав. Вот пошаговые инструкции: Способ 1: Запуск через контекстное меню Найдите ваш .bat-файл в проводнике (например, open_vscode_with_folder.bat).

Щёлкните правой кнопкой мыши по файлу.

Выберите “Запуск от имени администратора” (если этот пункт есть). Если его нет, переходите к другим способам.

Способ 2: Через CMD с правами администратора Откройте Командную строку (CMD) от имени администратора: Нажмите Win + S, введите cmd, щёлкните правой кнопкой на “Командная строка” → “Запуск от имени администратора”.

Перейдите в папку с вашим .bat-файлом: cmd

cd C:\Vault13

Запустите скрипт с аргументом: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Способ 3: Через PowerShell с правами администратора Откройте PowerShell от имени администратора: Нажмите Win + S, введите powershell, щёлкните правой кнопкой → “Запуск от имени администратора”.

Перейдите в папку: powershell

cd C:\Vault13

Запустите скрипт: powershell

.\open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Способ 4: Настройка скрипта для запроса прав администратора Вы можете модифицировать .bat-файл, чтобы он автоматически запрашивал права администратора при запуске: bat

@echo off

:: Проверка, запущен ли скрипт с правами администратора net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -Verb RunAs” exit /b )

:: Основной код скрипта set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” pause

Как это работает: net session проверяет, есть ли права администратора. Если их нет (errorlevel ≠ 0), скрипт перезапускает сам себя через PowerShell с запросом прав.

После получения прав выполняется ваш код.

Использование: Сохраните этот код как open_vscode_with_folder.bat.

Дважды щёлкните по файлу или запустите через CMD: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Появится запрос UAC (контроль учётных записей), подтвердите его.

Способ 5: Создание ярлыка с правами администратора Щёлкните правой кнопкой мыши по .bat-файлу → “Создать ярлык”.

Щёлкните правой кнопкой по ярлыку → “Свойства”.

Перейдите на вкладку “Совместимость” или “Ярлык”.

Нажмите “Дополнительно” → поставьте галочку “Запуск от имени администратора” → OK → Применить.

Запускайте ярлык вместо самого .bat.

Связь с вашей задачей Если VS Code не открывает папку и файл из-за ограничений прав доступа (например, C:\Vault13 требует администраторских прав), запуск скрипта от имени администратора может помочь. После запуска от имени администратора проверьте: Открывается ли папка C:\Vault13 в боковой панели?

Открывается ли файл PRAndSchemaRecipe.md во вкладке?

Что мне нужно от вас Попробуйте один из способов (например, способ 4 — модифицированный скрипт).

Запустите: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Сообщите: Открылись ли папка и файл в VS Code?

Какой был вывод в консоли (логи, ошибки)?

Если проблема сохраняется даже с правами администратора, мы продолжим отладку с учётом этого фактора. Жду вашего ответа!

Вот с таким скриптом все открывает корректно и файл и папку:

От…

@echo off:: Получаем полный путь к файлу set “file=%~1”:: Извлекаем путь к папке for %%F in ("%file%") do set “folder=%%~dpF”:: Отладка: выводим пути в консоль, чтобы проверить echo File: “%file%” echo Folder: “%folder%”:: Запускаем VS Code с папкой и файлом “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%”

Ваш скрипт выглядит корректным для открытия папки в VS Code. Давайте протестируем его и убедимся, что он работает как ожидается, а затем, если нужно, добавим запуск от имени администратора. Текущий скрипт bat

@echo off

:: Получаем полный путь к файлу set “file=%~1”

:: Извлекаем путь к папке for %%F in ("%file%") do set “folder=%%~dpF”

:: Отладка: выводим пути в консоль, чтобы проверить echo File: “%file%” echo Folder: “%folder%”

:: Запускаем VS Code с папкой и файлом “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%”

Что он делает: Принимает путь к файлу как аргумент (%~1).

Извлекает путь к папке с помощью for и %%~dpF.

Выводит пути для отладки.

Запускает VS Code с указанием папки ("%folder%"), что должно открыть её в боковой панели.

Тестирование Сохраните скрипт как open_vscode_with_folder.bat.

Запустите его из CMD или PowerShell: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Проверьте: Что выводится в консоль (File: и Folder:)?

Открывается ли VS Code с папкой C:\Vault13 в боковой панели?

Добавление запуска от имени администратора Если вам нужно, чтобы этот скрипт автоматически запускался с правами администратора, вот модифицированная версия: bat

@echo off

:: Проверка, запущен ли скрипт с правами администратора net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1”

:: Извлекаем путь к папке for %%F in ("%file%") do set “folder=%%~dpF”

:: Отладка: выводим пути в консоль, чтобы проверить echo File: “%file%” echo Folder: “%folder%”

:: Запускаем VS Code с папкой и файлом “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%”

pause

Что добавлено: net session проверяет права администратора.

Если прав нет, скрипт перезапускается через PowerShell с -Verb RunAs и передаёт исходный аргумент (%~1).

pause в конце, чтобы консоль не закрывалась сразу после выполнения.

Тестирование с правами администратора Сохраните этот код как open_vscode_with_folder.bat.

Запустите: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Подтвердите запрос UAC (если появится).

Проверьте: Вывод в консоли (File: и Folder:).

Открывается ли папка C:\Vault13 в VS Code.

Возможные проблемы Путь к Code.exe: Если VS Code установлен не в C:\Program Files\Microsoft VS Code, замените путь на правильный (например, C:\Users\ВашПользователь\AppData\Local\Programs\Microsoft VS Code\Code.exe).

Права доступа: Если C:\Vault13 требует прав администратора, версия без проверки прав может не сработать, а с запросом прав должна помочь.

Предупреждения или сбои: Если снова появляется DeprecationWarning или хост расширений падает, добавьте –trace-deprecation: bat

“C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –trace-deprecation

Что мне нужно от вас Протестируйте скрипт (с правами администратора или без) и сообщите: Что выводится в консоль (File: и Folder:)?

Открывается ли папка C:\Vault13 в VS Code?

Появляются ли ошибки или предупреждения (например, DeprecationWarning)?

Если ничего не открывается, укажите точный путь к Code.exe на вашем компьютере.

С этими данными я помогу вам довести скрипт до рабочего состояния!

Но остается открытым окно терминала в котором: File: “C:\Vault13\PRAndSchemaRecipe.md” Folder: “C:\Vault13”[main 2025-03-14T10:28:19.739Z] update#setState idle (node:5140) [DEP0168] DeprecationWarning: Uncaught N-API callback exception detected, please run node with option –force-node-api-uncaught-exceptions-policy=true to handle those exceptions properly. (Use Code –trace-deprecation … to show where the warning was created) [main 2025-03-14T10:28:49.751Z] update#setState checking for updates [main 2025-03-14T10:28:50.212Z] update#setState idle При закрытии окна терминала закрывается и vscode! Кака это исправить?

Отлично, что ваш скрипт теперь открывает и папку, и файл в VS Code! Однако есть две проблемы: Окно терминала остаётся открытым.

При закрытии терминала закрывается и VS Code, что нежелательно.

Это происходит из-за того, как .bat-файл запускает VS Code — процесс Code.exe остаётся дочерним для терминала, и при закрытии терминала завершается и VS Code. Давайте исправим это. Исправленный скрипт Вот обновлённая версия скрипта, которая: Закрывает терминал после запуска VS Code.

Запускает VS Code независимо, чтобы он не закрывался вместе с терминалом.

bat

@echo off

:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1”

:: Извлекаем путь к папке for %%F in ("%file%") do set “folder=%%~dpF”

:: Отладка: выводим пути в консоль echo File: “%file%” echo Folder: “%folder%”

:: Запускаем VS Code асинхронно и закрываем терминал start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” exit

Что изменено: start “”: Команда start запускает VS Code в отдельном процессе, не привязывая его к текущему терминалу.

Пустые кавычки "" перед путём указывают, что заголовок окна не нужен.

exit: Закрывает терминал сразу после запуска VS Code, так что окно не остаётся висеть.

–goto “%file%”: Я добавил его обратно, чтобы файл открывался во вкладке (в вашем последнем примере его не было, но вы говорили, что хотите и папку, и файл).

Тестирование Сохраните скрипт как open_vscode_with_folder.bat.

Запустите: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Проверьте: Открывается ли VS Code с папкой C:\Vault13 в боковой панели и файлом PRAndSchemaRecipe.md во вкладке?

Закрывается ли терминал автоматически?

Остаётся ли VS Code открытым после закрытия терминала?

Устранение DeprecationWarning В вашем выводе всё ещё есть:

(node:5140) [DEP0168] DeprecationWarning: Uncaught N-API callback exception detected…

Чтобы убрать это предупреждение или найти его источник: Добавьте –force-node-api-uncaught-exceptions-policy=true для подавления: bat

start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –force-node-api-uncaught-exceptions-policy=true exit

Или используйте –trace-deprecation для диагностики: bat

start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation exit

Посмотрите в консоль (если она успеет что-то показать до закрытия) или в логах VS Code, чтобы понять, откуда предупреждение.

Если права администратора не нужны Если вам не требуются права администратора, можно упростить скрипт: bat

@echo off

set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” exit

Что мне нужно от вас Протестируйте предложенный скрипт и сообщите: Открываются ли папка и файл в VS Code?

Закрывается ли терминал автоматически?

Остаётся ли VS Code работать после закрытия терминала?

Появляется ли DeprecationWarning в консоли (если да, добавьте вывод с –trace-deprecation)?

Интеграция с проводником Если всё работает, можно настроить проводник: Щёлкните правой кнопкой по файлу (например, .md) → “Открыть с помощью” → “Выбрать другое приложение”.

Укажите путь к вашему .bat (например, C:\Vault13\open_vscode_with_folder.bat).

Установите “Всегда использовать это приложение”.

С этими изменениями терминал не должен мешать, а VS Code будет работать независимо. Жду ваших результатов!

–goto “%file%”: Я добавил его обратно, чтобы файл открывался во вкладке (в вашем последнем примере его не было, но вы говорили, что хотите и папку, и файл).ПЕрестает работать!

Спасибо за уточнение! Похоже, добавление –goto “%file%” ломает поведение скрипта, и VS Code перестаёт открывать папку (или вообще ничего не открывает). Это может быть связано с тем, как VS Code интерпретирует комбинацию аргументов или с особенностями обработки путей в вашем окружении. Давайте разберёмся и найдём рабочее решение. Анализ проблемы Без –goto “%file%” ваш скрипт открывает папку C:\Vault13 в боковой панели, но файл PRAndSchemaRecipe.md не открывается во вкладке.

С –goto “%file%” что-то ломается, и VS Code не открывает ни папку, ни файл.

Текущий рабочий скрипт (без –goto) Судя по вашему комментарию, этот вариант работает для открытия папки: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%”

Исправление для открытия и папки, и файла Чтобы открыть и папку, и файл, нужно правильно передать оба аргумента. Проблема с –goto может быть в синтаксисе или в том, как VS Code обрабатывает его в вашем случае. Попробуем альтернативные подходы. Вариант 1: Исправленный –goto Убедимся, что синтаксис корректен: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” exit

start "" запускает VS Code асинхронно, чтобы терминал закрывался.

–goto “%file%” добавлен для открытия файла.

Тестирование: cmd

open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”

Проверьте, открываются ли и папка, и файл. Если нет, сообщите, что происходит (пустое окно, ошибка, ничего?).

Вариант 2: Отдельное открытие файла Если –goto продолжает ломать скрипт, можно открыть папку и файл раздельно: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%file%” exit

Первая команда открывает папку.

Вторая открывает файл в той же сессии VS Code (если экземпляр уже запущен, файл добавится в него).

Это может быть менее надёжно, но иногда работает лучше.

Вариант 3: Использование -r (reuse window) Флаг -r заставляет VS Code использовать существующий экземпляр: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%folder%” “%file%” exit

-r обеспечивает, что папка и файл откроются в одном окне.

Устранение зависимости от терминала Все варианты выше используют start "" и exit, чтобы: Терминал закрывался сразу.

VS Code оставался открытым независимо.

Диагностика DeprecationWarning Если проблема с –goto связана с предупреждением (node:5140) [DEP0168] DeprecationWarning, добавим –trace-deprecation: bat

@echo off set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” echo File: “%file%” echo Folder: “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” “%folder%” –goto “%file%” –trace-deprecation exit

Запустите и посмотрите, появляется ли дополнительная информация о предупреждении до закрытия терминала.

Что мне нужно от вас Протестируйте каждый из трёх вариантов и сообщите: Вариант 1: Открываются ли папка и файл?

Что происходит, если не работают (пустое окно, ошибка)?

Вариант 2: Работает ли раздельное открытие?

Вариант 3: Помогает ли -r?

Вывод с –trace-deprecation (если предупреждение всё ещё есть).

Предварительный вывод Проблема с –goto может быть в: Неправильной обработке пути с вашей стороны VS Code.

Конфликте с настройками или расширениями.

Баге в текущей версии VS Code.

С вашими результатами я смогу предложить окончательное решение, чтобы и папка, и файл открывались стабильно!

@echo off:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%f0’ -ArgumentList ‘"%1”’ -Verb RunAs" exit /b ):: Получаем полный путь к файлу set “file=%~1”:: Извлекаем путь к папке for %%F in ("%file%") do set “folder=%%~dpF”:: Отладка: выводим пути в консоль echo File: “%file%” echo Folder: “%folder%”:: Запускаем VS Code асинхронно и закрываем терминал start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%file%” “%folder%“exit ВОТ ТАК ВСЁ РАБОТАЕТ! СПАСИБО!

Рад, что всё заработало! Ваш окончательный скрипт выглядит так:

@echo off

:: Проверка прав администратора (если нужно)
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Запрашиваю права администратора...
    powershell -Command "Start-Process '%~f0' -ArgumentList '\"%~1\"' -Verb RunAs"
    exit /b
)

:: Получаем полный путь к файлу
set "file=%~1"

:: Извлекаем путь к папке
for %%F in ("%file%") do set "folder=%%~dpF"

:: Отладка: выводим пути в консоль
echo File: "%file%"
echo Folder: "%folder%"

:: Запускаем VS Code асинхронно и закрываем терминал
start "" "C:\Program Files\Microsoft VS Code\Code.exe" -r "%file%" "%folder%"

exit

Почему это работает -r: Флаг -r (reuse window) заставляет VS Code использовать существующий экземпляр или открывать новый, добавляя и файл, и папку в одно окно. Это решает проблему с –goto, который почему-то ломал поведение в вашем случае. Порядок аргументов “%file%” “%folder%” позволяет открыть файл во вкладке и папку в боковой панели. start “”: Запускает VS Code в отдельном процессе, так что терминал не остаётся родительским. exit: Закрывает терминал сразу после запуска, оставляя VS Code работать независимо. Проверка прав администратора: Полезна, если доступ к C:\Vault13 или запуск VS Code требует повышенных прав. Что происходит При запуске (например, open_vscode_with_folder.bat “C:\Vault13\PRAndSchemaRecipe.md”): Папка C:\Vault13 открывается в боковой панели (Explorer). Файл PRAndSchemaRecipe.md открывается во вкладке. Терминал закрывается, а VS Code остаётся открытым. Возможные улучшения Убрать отладку: Если вам не нужна отладочная информация, удалите строки: bat echo File: “%file%” echo Folder: “%folder%” Это сделает скрипт тише. Подавить DeprecationWarning: Если предупреждение (node:5140) [DEP0168] DeprecationWarning всё ещё появляется и раздражает, добавьте флаг: bat start "” “C:\Program Files\Microsoft VS Code\Code.exe” -r “%file%” “%folder%” –force-node-api-uncaught-exceptions-policy=true Интеграция с проводником: Щёлкните правой кнопкой по .md-файлу → “Открыть с помощью” → “Выбрать другое приложение”. Укажите C:\Vault13\open_vscode_with_folder.bat. Поставьте галочку “Всегда использовать это приложение”. Ответ на ваш исходный вопрос Вы спрашивали: «Как сделать так, чтобы VS Code при открытии файла из проводника открывала и его папку?». Этот скрипт полностью решает задачу: Файл открывается во вкладке. Папка отображается в боковой панели. Терминал не мешает. Финальная проверка Если всё работает как надо, можете считать задачу решённой! Если вдруг что-то перестанет работать (например, после обновления VS Code), дайте знать — я помогу адаптировать скрипт. Спасибо за терпение и обратную связь — это помогло найти рабочее решение! Если есть ещё вопросы или задачи, обращайтесь!

Отлично, что вы задали этот вопрос! Давайте разберём, что означает folder=%%~dpF в вашем .bat-скрипте, чтобы вы лучше понимали, как он работает. Полный контекст Эта строка находится внутри конструкции for в вашем скрипте: bat for %%F in ("%file%”) do set “folder=%%~dpF” Пошаговое объяснение for %%F in ("%file%") do …: Это цикл for в командной строке Windows (.bat-файлах). %%F — это временная переменная, которая принимает значение каждого элемента из набора, указанного в скобках ("%file%"). “%file%” — это строка, содержащая полный путь к файлу (например, “C:\Vault13\PRAndSchemaRecipe.md”), переданный в скрипт как аргумент %~1. В данном случае в скобках только один элемент ("%file%"), так что %%F примет значение “C:\Vault13\PRAndSchemaRecipe.md”. set “folder=%%~dpF”: Команда set присваивает переменной folder значение, которое получается из выражения %%~dpF. Здесь начинается магия модификаторов пути — ~dp. %%~dpF: Это специальный синтаксис в .bat-файлах для извлечения частей пути из переменной %%F. Разберём по частям: %%F — значение переменной for, то есть “C:\Vault13\PRAndSchemaRecipe.md”. ~ — указывает, что мы хотим извлечь часть пути с помощью модификаторов. d — означает “drive” (диск), извлекает букву диска (в данном случае C:). p — означает “path” (путь), извлекает директорию до файла (в данном случае \Vault13). Итог: %%~dpF возвращает “C:\Vault13" — путь к папке, содержащей файл, включая диск и директорию, с завершающим слэшем . Пример Допустим, %file% = “C:\Vault13\PRAndSchemaRecipe.md”. Внутри for: %%F становится “C:\Vault13\PRAndSchemaRecipe.md”. %%~dpF извлекает “C:\Vault13". Затем set “folder=%%~dpF” присваивает folder значение “C:\Vault13". Другие модификаторы (для справки) Вот что ещё можно извлечь из пути с помощью похожих конструкций: %%~fF — полный путь к файлу (“C:\Vault13\PRAndSchemaRecipe.md”). %%~nF — только имя файла (“PRAndSchemaRecipe”). %%~xF — только расширение (".md”). %%~nxF — имя файла с расширением (“PRAndSchemaRecipe.md”). Почему это важно в вашем скрипте? folder=%%~dpF позволяет получить путь к папке, в которой лежит файл, переданный в скрипт. Это нужно, чтобы передать VS Code директорию (%folder%) для открытия в боковой панели или как часть рабочего пространства. Проверка Если вы добавите отладочный вывод: bat for %%F in ("%file%”) do echo %%~dpF Для file=“C:\Vault13\PRAndSchemaRecipe.md” вы увидите в консоли: C:\Vault13
Ответ на ваш вопрос folder=%%~dpF означает, что переменной folder присваивается путь к папке (диск + директория), в которой находится файл, указанный в %%F. В вашем случае это способ получить C:\Vault13\ из C:\Vault13\PRAndSchemaRecipe.md. Если есть ещё вопросы по скрипту или синтаксису — спрашивайте, с радостью объясню! Хотите что-то изменить в скрипте с учётом этого понимания?

Да, можно попытаться определить, к какому рабочему пространству (.code-workspace) относится открываемый файл, но это требует некоторых предположений и логики в скрипте, так как VS Code не предоставляет встроенного механизма для автоматического связывания файла с рабочим пространством. Мы можем реализовать это, например, путём поиска файлов .code-workspace в папке файла или в родительских директориях и проверки, входит ли путь файла в список папок, указанных в этом рабочем пространстве. Подход Поиск .code-workspace: Проверить текущую папку файла (например, C:\Vault13) на наличие файлов .code-workspace. Если их нет, подняться на уровень выше (например, C:) и искать там, рекурсивно до корня диска или заданного предела. Анализ содержимого .code-workspace: Открыть найденный .code-workspace (это JSON-файл) и проверить, включён ли путь к папке файла в список “folders”. Запуск VS Code: Если подходящий .code-workspace найден, открыть его и файл. Если нет, открыть просто папку как fallback. Пример скрипта Вот реализация с поиском .code-workspace в текущей папке и её родительских директориях: bat @echo off

:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1” for %%F in ("%file%”) do set “folder=%%~dpF”

:: Урезаем завершающий слеш из folder set “folder=%folder:~0,-1%”

:search_workspace :: Ищем .code-workspace в текущей папке for %%W in ("%folder%*.code-workspace") do ( set “workspace=%%W” goto :found_workspace )

:: Если не нашли, поднимаемся на уровень выше for %%P in ("%folder%") do set “parent=%%~dpP” set “parent=%parent:~0,-1%” if “%parent%"=="%folder%” ( echo No workspace found, opening folder instead set “workspace=%folder%” goto :run_vscode ) set “folder=%parent%” goto :search_workspace

:found_workspace echo Found workspace: “%workspace%”

:run_vscode echo File: “%file%” echo Workspace or Folder: “%workspace%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%workspace%” “%file%” exit Как это работает: Извлечение папки: for %%F in ("%file%") do set “folder=%%~dpF” получает путь к папке (например, C:\Vault13). set “folder=%folder:~0,-1%” убирает завершающий слеш, чтобы получить C:\Vault13. Рекурсивный поиск: Цикл :search_workspace ищет .code-workspace в текущей папке (%folder%*.code-workspace). Если ничего не найдено, поднимается на уровень выше (for %%P in ("%folder%") do set “parent=%%~dpP”) и повторяет поиск. Если доходит до корня диска (например, C:), прекращает поиск и использует исходную папку. Запуск: Если .code-workspace найден, присваивает его переменной workspace и открывает с файлом. Если нет, открывает просто папку (%folder%). Ограничение: Этот скрипт не проверяет содержимое .code-workspace, а просто берёт первый найденный файл. Если у вас несколько .code-workspace в одной папке или выше, он выберет первый попавшийся. Улучшенная версия (проверка принадлежности) Чтобы точно проверить, относится ли файл к рабочему пространству, нужно анализировать JSON внутри .code-workspace. .bat не умеет парсить JSON нативно, но мы можем использовать findstr для поиска пути папки в файле: bat @echo off

:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” set “folder=%folder:~0,-1%”

:search_workspace :: Ищем .code-workspace в текущей папке for %%W in ("%folder%*.code-workspace") do ( set “workspace=%%W” :: Проверяем, содержит ли workspace путь к папке findstr /C:""path": ".*%folder%"" “%workspace%” >nul if %errorlevel% equ 0 ( goto :found_workspace ) )

:: Поднимаемся выше for %%P in ("%folder%") do set “parent=%%~dpP” set “parent=%parent:~0,-1%” if “%parent%"=="%folder%” ( echo No workspace found, opening folder instead set “workspace=%folder%” goto :run_vscode ) set “folder=%parent%” goto :search_workspace

:found_workspace echo Found workspace: “%workspace%”

:run_vscode echo File: “%file%” echo Workspace or Folder: “%workspace%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%workspace%” “%file%” exit Что добавлено: findstr /C:""path": ".*%folder%"" ищет в .code-workspace строку вида “path”: “C:\Vault13” (или любую, содержащую путь к папке). Если путь найден (%errorlevel% equ 0), использует этот .code-workspace. Тестирование Сохраните скрипт как open_vscode_with_workspace.bat. Создайте .code-workspace (например, C:\Vault13\Vault13.code-workspace): json { “folders”: [ {“path”: “C:\Vault13”} ], “settings”: {} } Запустите: cmd open_vscode_with_workspace.bat “C:\Vault13\PRAndSchemaRecipe.md” Проверьте вывод и поведение. Что мне нужно от вас Протестируйте один из скриптов и сообщите: Находит ли он .code-workspace (какой путь выводит)? Открывает ли он правильное рабочее пространство и файл? Есть ли ошибки? Если у вас специфическая структура папок или несколько .code-workspace, укажите это, и я доработаю логику!

Вы правы, рекурсивный поиск .code-workspace вверх по дереву директорий может быть слишком медленным, особенно если файл находится глубоко, например, на рабочем столе (C:\Users\ВашПользователь\Desktop\Folder1\Folder2...). Каждый шаг требует проверки всех .code-workspace в папке, что замедляет процесс. Давайте оптимизируем это, чтобы поиск был быстрее и практичнее. Проблема Рекурсивный обход от глубокой папки (например, C:\Users\User\Desktop\Projects\Vault13) до корня (C:) может занимать много времени. Проверка каждого .code-workspace с помощью findstr добавляет задержку. Решения Ограничить глубину поиска: Искать .code-workspace только в текущей папке и, например, на 1-2 уровня выше. Использовать фиксированный список рабочих пространств: Заранее указать возможные .code-workspace в скрипте, чтобы не искать их. Кэширование или предположение: Предположить, что .code-workspace находится в корне проекта, и проверять только там. Переложить логику на VS Code: Открыть файл и дать VS Code самому найти рабочее пространство (если оно связано). Оптимизированный скрипт (ограниченная глубина) Вот версия с поиском только в текущей папке и на 2 уровня выше: bat @echo off

:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” set “folder=%folder:~0,-1%”

:: Уровень 0: текущая папка for %%W in ("%folder%*.code-workspace") do ( set “workspace=%%W” goto :found_workspace )

:: Уровень 1: родительская папка for %%P in ("%folder%") do set “parent1=%%~dpP” set “parent1=%parent1:~0,-1%” for %%W in ("%parent1%*.code-workspace") do ( set “workspace=%%W” goto :found_workspace )

:: Уровень 2: папка выше for %%P in ("%parent1%") do set “parent2=%%~dpP” set “parent2=%parent2:~0,-1%” for %%W in ("%parent2%*.code-workspace") do ( set “workspace=%%W” goto :found_workspace )

:: Если ничего не нашли, открываем папку echo No workspace found, opening folder instead set “workspace=%folder%” goto :run_vscode

:found_workspace echo Found workspace: “%workspace%”

:run_vscode echo File: “%file%” echo Workspace or Folder: “%workspace%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%workspace%” “%file%” exit Что изменено: Поиск ограничен: Уровень 0: текущая папка (например, C:\Users\User\Desktop\Projects\Vault13). Уровень 1: родительская папка (C:\Users\User\Desktop\Projects). Уровень 2: ещё выше (C:\Users\User\Desktop). Если .code-workspace не найден на этих уровнях, открывается исходная папка. Тестирование: cmd open_vscode_with_workspace.bat “C:\Users\User\Desktop\Projects\Vault13\PRAndSchemaRecipe.md” Проверяет C:\Users\User\Desktop\Projects\Vault13, затем C:\Users\User\Desktop\Projects, затем C:\Users\User\Desktop. Альтернатива: фиксированный список Если у вас есть ограниченное число рабочих пространств, можно указать их вручную: bat @echo off

:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” set “folder=%folder:~0,-1%”

:: Список возможных рабочих пространств set “ws1=C:\Users\User\Projects\Vault13.code-workspace” set “ws2=C:\Users\User\Desktop\Workspace.code-workspace”

:: Проверяем, относится ли папка к ws1 echo %folder%| findstr /C:“C:\Users\User\Projects” >nul if %errorlevel% equ 0 ( set “workspace=%ws1%” goto :run_vscode )

:: Проверяем, относится ли папка к ws2 echo %folder%| findstr /C:“C:\Users\User\Desktop” >nul if %errorlevel% equ 0 ( set “workspace=%ws2%” goto :run_vscode )

:: Fallback: открываем папку echo No workspace matched, opening folder instead set “workspace=%folder%”

:run_vscode echo File: “%file%” echo Workspace or Folder: “%workspace%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%workspace%” “%file%” exit Что здесь: Заранее задаём пути к .code-workspace (ws1, ws2). Проверяем, содержится ли путь папки в одном из них с помощью findstr. Если совпадение есть, используем соответствующий .code-workspace. Ещё проще: довериться VS Code VS Code может сам искать рабочие пространства, если они недавно использовались: bat @echo off

set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” set “folder=%folder:~0,-1%”

echo File: “%file%” echo Folder: “%folder%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%file%” exit Открываем только файл с -r. VS Code сам найдёт и загрузит связанное рабочее пространство, если оно было сохранено ранее. Что мне нужно от вас Какой подход вам ближе: Ограниченный поиск (первый вариант)? Фиксированный список (второй)? Довериться VS Code (третий)? Укажите пример пути к файлу (например, C:\Users\User\Desktop\Projects\Vault13\file.md) и где лежат ваши .code-workspace. Есть ли конкретные проекты, для которых вы хотите это настроить? С этими данными я доработаю скрипт под ваши нужды!

Отлично, фиксированный список — это удобный и быстрый подход, особенно если у вас всего три рабочих пространства. Мы зададим их пути в скрипте и будем проверять, к какому из них относится папка открываемого файла. Давайте реализуем это. Предположения У вас есть три .code-workspace, например: C:\Projects\Vault13\Vault13.code-workspace C:\Work\MyApp\MyApp.code-workspace C:\Personal\Notes\Notes.code-workspace Каждый из них связан с определённой корневой папкой (например, C:\Projects\Vault13, C:\Work\MyApp, C:\Personal\Notes). Нужно, чтобы скрипт определял, к какому рабочему пространству относится файл, и открывал его вместе с файлом. Если пути у вас другие, укажите их в ответе, и я подставлю точные значения. Скрипт с фиксированным списком bat @echo off

:: Проверка прав администратора (если нужно) net session >nul 2>&1 if %errorlevel% neq 0 ( echo Запрашиваю права администратора… powershell -Command “Start-Process ‘%~f0’ -ArgumentList ‘"%~1"’ -Verb RunAs” exit /b )

:: Получаем полный путь к файлу set “file=%~1” for %%F in ("%file%") do set “folder=%%~dpF” set “folder=%folder:~0,-1%”

:: Фиксированный список рабочих пространств set “ws1=C:\Projects\Vault13\Vault13.code-workspace” set “ws1_root=C:\Projects\Vault13” set “ws2=C:\Work\MyApp\MyApp.code-workspace” set “ws2_root=C:\Work\MyApp” set “ws3=C:\Personal\Notes\Notes.code-workspace” set “ws3_root=C:\Personal\Notes”

:: Проверяем, относится ли папка к ws1 echo %folder%| findstr /C:"%ws1_root%" >nul if %errorlevel% equ 0 ( set “workspace=%ws1%” goto :run_vscode )

:: Проверяем, относится ли папка к ws2 echo %folder%| findstr /C:"%ws2_root%" >nul if %errorlevel% equ 0 ( set “workspace=%ws2%” goto :run_vscode )

:: Проверяем, относится ли папка к ws3 echo %folder%| findstr /C:"%ws3_root%" >nul if %errorlevel% equ 0 ( set “workspace=%ws3%” goto :run_vscode )

:: Fallback: открываем папку echo No workspace matched, opening folder instead set “workspace=%folder%”

:run_vscode echo File: “%file%” echo Workspace or Folder: “%workspace%” start "" “C:\Program Files\Microsoft VS Code\Code.exe” -r “%workspace%” “%file%” exit Как это работает: Список рабочих пространств: ws1, ws2, ws3 — пути к вашим .code-workspace. ws1_root, ws2_root, ws3_root — корневые папки, связанные с этими рабочими пространствами. Проверка принадлежности: findstr /C:"%ws1_root%" проверяет, содержится ли корневой путь (например, C:\Projects\Vault13) в пути папки файла (%folder%). Если да, выбирается соответствующее рабочее пространство. Запуск: Открывает выбранное .code-workspace и файл с помощью -r. Пример: Файл: C:\Projects\Vault13\Docs\PRAndSchemaRecipe.md Папка: C:\Projects\Vault13\Docs Скрипт видит, что C:\Projects\Vault13 содержится в пути, и выбирает C:\Projects\Vault13\Vault13.code-workspace. Настройка под ваши пути Пожалуйста, укажите точные пути к вашим трём .code-workspace и их корневым папкам. Например: C:\Users\User\Projects\Vault13.code-workspace → корень C:\Users\User\Projects C:\Work\Code\App.code-workspace → корень C:\Work\Code C:\Notes\Personal.code-workspace → корень C:\Notes Я подставлю их в скрипт. Тестирование Замените пути в скрипте на свои. Сохраните как open_vscode_with_workspace.bat. Запустите: cmd open_vscode_with_workspace.bat “C:\Projects\Vault13\PRAndSchemaRecipe.md” Проверьте: Какое рабочее пространство открылось? Открылся ли файл? Что мне нужно от вас Укажите пути к вашим трём .code-workspace и их корневым папкам. Сообщите, работает ли скрипт с вашими данными. Если есть ошибки или неожиданное поведение, опишите их. С этими данными я сделаю скрипт идеально подходящим для ваших трёх рабочих пространств!