Как использовать Cmder в коде Visual Studio?
на работе существует корпоративная политика безопасности, где все исполняемые файлы могут работать только из C:Program Files
или C:Program Files (x86)
.
в коде Visual Studio, в settings.json
, используя следующие параметры:
{
"terminal.integrated.shell.windows": "C:WindowsSysnativecmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k C:Program Files (x86)Cmdervendorinit.bat"
]
}
...при инициализации для интегрированного терминала появляется следующее сообщение об ошибке:
'C:Program' is not recognized as an internal or external command,
operable program or batch file.
из-за удивительного соглашения об именовании файлов/каталогов Windows, разрешающего пробелы, трудно указать на один из Program File
пути.
VSCode не нравится, когда вы избегаете символа пробела, и этот код дает мне ошибку Invalid escape character in string
. Когда я пытаюсь изменить свойство на это:
{
...
"terminal.integrated.shellArgs.windows": [
"/k C:Program Files (x86)Cmdervendorinit.bat"
]
}
...Я получаю следующее сообщение об ошибке:
'C:ProgramFiles' is not recognized as an internal or external command,
operable program or batch file.
наконец, пытаясь окружить путь в кавычках, как это:
{
...
"terminal.integrated.shellArgs.windows": [
"/k "C:Program Files (x86)Cmdervendorinit.bat""
]
}
...дает мне это сообщение об ошибке:
'"C:Program Files (x86)Cmdervendorinit.bat""' is not recognized as an
internal or external command,
operable program or batch file.
есть ли способ интегрировать Cmder в VSCode?
3 ответов
после поиска в интернете ответов я не мог найти решение, но я понял это и подумал, что могу опубликовать его здесь для других, так как я видел, что у людей с разных форумов был один и тот же вопрос, но ответа не было.
в Windows есть /X
на dir
команда, которая гласит:
/X This displays the short names generated for non-8dot3 file
names. The format is that of /N with the short name inserted
before the long name. If no short name is present, blanks are
displayed in its place.
Итак, делаем dir /X
команда on C:\
отображается следующая информация:
C:\>dir /X
Volume in drive C is OSDisk
Volume Serial Number is XXXX-XXXX
Directory of C:\
...
08/17/2017 08:02 PM <DIR> PROGRA~1 Program Files
08/09/2017 03:58 PM <DIR> PROGRA~2 Program Files (x86)
...
вы можете использовать короткое имя каталога PROGRA~2
заменить Program Files (x86)
, и имеют следующие параметры settings.json
для VS кода:
{
"terminal.integrated.shell.windows": "C:\Windows\Sysnative\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k C:\PROGRA~2\Cmder\vendor\init.bat"
]
}
что делает загрузку Cmder успешно в интегрированном терминале:
другое решение - вы можете установить свое местоположение cmder в новый путь
и просто установите в настройках.в JSON
"terminal.integrated.shell.windows": "C:\Windows\system32\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k %CMDER_ROOT%\vendor\init.bat"
]
вы можете найти выпуск cmder github
это работа для меня. Мой корневой каталог Cmder: D:\soft\cmder
внимание твое!
"terminal.integrated.env.windows": {"CMDER_ROOT": "D:\soft\cmder"},
"terminal.integrated.shellArgs.windows": ["/k D:\soft\cmder\vendor\init.bat"],
добавьте его в настройки VSCode. наслаждайтесь!