hom*_*son 23 cmder visual-studio-code
在工作中,有一个企业安全策略,其中所有可执行文件仅允许用完C:\Program Files或C:\Program Files (x86).
在Visual Studio Code中settings.json,使用以下设置:
{
"terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k C:\\Program Files (x86)\\Cmder\\vendor\\init.bat"
]
}
Run Code Online (Sandbox Code Playgroud)
...在集成终端的初始化时,我收到以下错误消息:
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
由于Windows的令人敬畏的文件/目录命名约定允许空格,因此很难指向其中一个Program File路径.
当你转义空格字符时VSCode不喜欢它,这段代码给了我错误Invalid escape character in string.当我尝试将属性更改为:
{
...
"terminal.integrated.shellArgs.windows": [
"/k C:\\Program\ Files\ (x86)\\Cmder\\vendor\\init.bat"
]
}
Run Code Online (Sandbox Code Playgroud)
...我收到以下错误消息:
'C:\ProgramFiles' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
最后,尝试用这样的引号括起路径:
{
...
"terminal.integrated.shellArgs.windows": [
"/k \"C:\\Program Files (x86)\\Cmder\\vendor\\init.bat\""
]
}
Run Code Online (Sandbox Code Playgroud)
...给我这个错误信息:
'\"C:\Program Files (x86)\Cmder\vendor\init.bat\""' is not recognized as an
internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
有没有办法将Cmder集成到VSCode中?
hom*_*son 35
在网上寻找答案之后,我找不到解决办法,但我想出来并认为我可以在这里发帖给别人看,因为我看到来自不同论坛的人有同样的问题,但没有回答.
在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.
Run Code Online (Sandbox Code Playgroud)
因此,执行dir /X命令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)
...
Run Code Online (Sandbox Code Playgroud)
您可以使用目录短名称PROGRA~2替换Program Files (x86),并在settings.jsonfor VS Code 中进行以下设置:
{
"terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k C:\\PROGRA~2\\Cmder\\vendor\\init.bat"
]
}
Run Code Online (Sandbox Code Playgroud)
哪个在集成终端中成功加载Cmder:
小智 10
另一种解决方案是您可以将cmder位置设置为新路径
并在你的settings.json中设置
"terminal.integrated.shell.windows": "C:\\Windows\\system32\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k %CMDER_ROOT%\\vendor\\init.bat"
]
Run Code Online (Sandbox Code Playgroud)
你可以在cmder github问题上找到它
Cmder团队建议^在路径中的每个空格之前添加一个字符,而不是使用8dot3命名方法.
例:
{
"terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k C:\\Program Files^ (x86)\\Cmder\\vendor\\init.bat"
]
}
Run Code Online (Sandbox Code Playgroud)
路径中的空间
⚠ 注意: Windows中的命令行解释程序在路径中存在空格问题,例如
C:\Program Files (x86)\Cmder.我们不建议在包含空格的路径中安装Cmder.相反,我们建议在不包含任何空格的路径中安装Cmder,例如:
C:\apps\Cmder或者C:\tools\Cmder避免与VS Code发生任何冲突.如果由于某种原因确实需要从包含空格的路径启动Cmder,则可能需要
^在每个空格之前添加一个符号,这样C:\\Example Directory for Test\\Cmder就会C:\\Example^ Directory^ for^ Test\\Cmder在settings.json文件中出现.
这是实现“2021”的新方法
与本文相关
第 1 步:下载 Cmder。
第 2 步:将 Cmder 保存到 C:\ 驱动器
第 3 步:在 VSCode 中打开 Settings.json(文件 - 首选项 - 设置...)
第 4 步:输入以下参数:
"terminal.integrated.profiles.windows": {
"Cmder": {
"path": "${env:windir}\\System32\\cmd.exe",
"args": ["/k", "C:\\cmder\\vendor\\bin\\vscode_init.cmd"]
}
},
"terminal.integrated.defaultProfile.windows": "Cmder",
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17043 次 |
| 最近记录: |