如何在Visual Studio Code中使用Cmder?

霍默斯普森

在工作中,有一项企业安全策略,其中所有可执行文件只允许用完C:\Program FilesC:\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"
    ]
}

...在集成终端初始化时,我收到以下错误消息:

'C:\Program' is not recognized as an internal or external command, 
operable program or batch file.

由于Windows出色的文件/目录命名约定允许使用空格,因此很难指向其中一个Program File路径。

当您转义空格字符时,VSCode不喜欢它,并且此代码给了我error Invalid escape character in string当我尝试将属性更改为此:

{
    ...
    "terminal.integrated.shellArgs.windows": [
        "/k C:\\Program\ Files\ (x86)\\Cmder\\vendor\\init.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)\\Cmder\\vendor\\init.bat\""
    ]
}

...给我这个错误信息:

'\"C:\Program Files (x86)\Cmder\vendor\init.bat\""' is not recognized as an 
internal or external command,
operable program or batch file.

有什么方法可以将Cmder集成到VSCode中吗?

霍默斯普森

在互联网上寻找答案后,我找不到解决方案,但我想出了办法,并认为我可以将其发布在这里,以供其他人查看,因为我发现来自不同论坛的人有相同的问题,但是没有回答。

在Windows中,/Xdir命令有一个,指出:

  /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执行命令将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.jsonVS Code中具有以下设置

{
    "terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\cmd.exe",
    "terminal.integrated.shellArgs.windows": [
        "/k C:\\PROGRA~2\\Cmder\\vendor\\init.bat"
    ]
}

哪个可以在集成终端中成功加载Cmder:

Cmder的图像已成功加载到VS Code集成终端中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章