Безопасный echo-only тест для VS Code Tasks: сравнить ASCII и типографские кавычки, зафиксировать shell profile и не запускать рабочий скрипт до локализации разбора аргумента.
Сохраните точные символы
Скопируйте только нейтральный тестовый аргумент и отметьте кодовые точки кавычек. Внешне похожие прямые и фигурные знаки — разные символы. Microsoft прямо предупреждает, что PowerShell распознаёт типографские одинарные и двойные кавычки как кавычки и советует не использовать их для заключения строк. Не берите пример из рабочего task: в нём могут быть токены, пути и адреса. Создайте отдельную echo-only задачу, которая ничего не меняет.
Зафиксируйте shell и режим quoting
В VS Code Tasks аргумент может иметь quoting со значением escape, strong или weak; представление strong и weak зависит от shell. Перед сравнением запишите версии VS Code и PowerShell, а также профиль терминала, который реально выбран. Не меняйте одновременно shell, quoting и текст аргумента: после трёх изменений нельзя понять, какая граница изменила вывод. Полный tasks.json в публичную ветку не выкладывайте.
Проведите три коротких прогона
Оставьте shell и quoting неизменными. В первом прогоне передайте строку без кавычек, во втором — с обычными ASCII-кавычками, в третьем — с фигурными. Каждый раз выводите лишь число аргументов, их длину и нейтральное тело. Если разница появляется только с фигурными знаками, вы локализовали входной класс символов, но ещё не доказали механизм внутри VS Code.
Остановитесь до запуска рабочей команды
Для эскалации достатачно минимального task без сети и записи на диск, трёх входов, точного shell profile и версий. Передайте кодовые точки кавычек и фактический вывод, а не свои догадки о причине. Если для работы требуется немедленный обходной путь, замените фигурные кавычки на ASCII в копии задачи и повторите echo-only тест. Не правьте рабочий скрипт без контрольного результа.
Как читать три результата quoting
Одинаковый вывод всех трёх входов означает, что выбранная минимальная связка не воспроизвела симптом. Если разница есть только для фигурных кавычек, замена их на ASCII в копии task даёт обратимый рабочий вариант. Если отличаются и ASCII-кавычки, проверьте в отдельной копии strong и weak, не трогая shell. Если изменение shell меняет вывод, это новая ось сравнения, а не доказанная вина PowerShell или VS Code. Пакет для issue должен передавать эту разницу, а не полную рабочую задачу.
Материал подготовлен редакцией VOne с применением ИИ для обратимой тестовой матрицы; quoting и правила PowerShell проверены по официальной документации, issue отделён от доказательств.
Источники и проверка
- Visual Studio Code — Tasks documentation проверено 2026-08-10
- Microsoft Learn — PowerShell quoting rules проверено 2026-08-10
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.