You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

文件名含&时VS Code的code --diff命令执行异常求助

解决PowerShell 5.1中VS Code code --diff 处理含&文件名的截断问题

针对PowerShell 5.1里执行code --diff对比含&的文件时,第二个文件名被截断为"R"且执行报错的问题,以下是几种可行的解决方法:

方法1:使用Start-Process传递参数

PowerShell的Start-Process支持单独指定每个参数,能规避特殊字符引发的解析错误:

Start-Process -FilePath "code" -ArgumentList "--diff", "R&D (cloud conflict 2-5-23).txt", "R&D.txt"

该命令会将每个参数独立传递给VS Code,确保文件名完整被识别。

方法2:使用--%停止解析符号

--%是PowerShell的停止解析标记,会让后续参数直接原样传递给外部命令,逻辑与CMD一致:

code --% --diff "R&D (cloud conflict 2-5-23).txt" "R&D.txt"

添加--%后,PowerShell不再处理后续特殊字符,直接将参数传给code命令,可正常解析带&的文件名。

方法3:通过cmd /c调用CMD执行命令

既然CMD能正常运行该命令,可在PowerShell里调用CMD执行:

cmd /c 'code --diff "R&D (cloud conflict 2-5-23).txt" "R&D.txt"'

这种方式利用CMD对参数的正确解析逻辑,绕过PowerShell 5.1的参数解析缺陷。

以上三种方法均可解决文件名截断问题,可根据脚本需求(如是否需要同步执行、是否需要捕获输出等)选择使用。

内容的提问来源于stack exchange,提问作者FOSS Guru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:01:15