code.exe 忽略命令行参数

Posted

技术标签:

【中文标题】code.exe 忽略命令行参数【英文标题】:code.exe ignoring command-line arguments 【发布时间】:2018-07-11 01:09:16 【问题描述】:

我希望这是一个简单的解决方法,但我找不到任何有关此问题的文档或其他帖子。我正在尝试编写一个脚本(cmdpwsh),它将根据我的偏好在便携式安装上启动 vscode。

当尝试使用任何参数执行 vscode 的 code.exe 时,它会忽略它们并只是启动程序,就像我没有输入任何其他内容一样。我在测试中是following this doc。使用别名开关也不起作用。 确实似乎处理的唯一参数是我是否包含路径。

code.exe --help
code.exe --version

此外,在启动 code.exe 后,控制台会挂起,然后 vscode 状态消息会发送到该控制台(即使不使用 --wait 开关)。如果我关闭控制台,vscode 就会关闭。有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

当通过shell(cmdpwsh)使用代码时,它不使用Code.exe,而是位于Bin文件夹下的脚本/批处理文件(code.cmd) .这些是真正识别命令行开关的应用程序。

这在Command Line Documentation 页面中并不完全清楚,但仔细观察Note 您会发现它确实显示了Program Files\Microsoft VS Code\bin 文件夹。

【讨论】:

进一步澄清,我明确地打电话给Code.exe。当我尝试调用该批处理文件时,它只是在编辑器中打开了 cli.js 文件。 如果你调用code --version(在你的脚本之外)会发生什么? 我的 PATH 中没有代码(注意,便携式下载)。除非我在正确的目录中,否则它不会做任何事情。也就是说,它只是启动 VSCode,没有控制台输出。 我不认为这是准确的。经过更多测试,它确实接受 cli-args(能够手动设置扩展名和用户目录),但面向状态的那些(--help/--version)不起作用。 查看这个未解决的问题 (github.com/Microsoft/vscode/issues/329)

以上是关于code.exe 忽略命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Cmd 损坏:为啥“应用程序构建”会忽略任何命令行参数?

命令行错误 - 最后一个参数被忽略?

如何在 Python 中处理命令行参数?

使用子解析器时,命令行参数被默认值覆盖

Jenkins初始化配置参数

sort排序命令 uniq 去除排序过的文件中的重复行 cut提取命令 wc 统计命令