Windows下Chrome/Edge原生消息清单路径含分号/逗号无法使用,求解决方法
Windows下Chrome/Edge原生消息清单含分号路径的解决方案
你遇到的是Windows系统下Chrome/Edge对原生消息清单path字段的解析限制:Windows中,分号是环境变量的分隔符,浏览器在解析路径时会将分号视为路径分隔标记,导致带分号的路径被错误截断;而Linux系统(如Ubuntu)没有这个解析逻辑,所以可以正常运行。
目前可行的解决办法有两种:
1. 使用Windows短路径(8.3格式)
Windows支持将长路径转换为不含特殊字符的短路径,具体获取方式:
- 打开命令提示符(CMD),执行命令:
for %f in ("C:\Users\User\Documents\Passy\passy_cli\temp\bin\passy_cli\2023-05-14T14;59;45.321229\passy_cli_native_messaging.bat") do echo %~sf - 把输出的短路径替换到清单的
path字段中(类似C:\Users\User\DOCUME~1\Passy\PASSYC~1\TEMP\BIN\PASSYC~1\2023-0~1\PASSYC~1.BAT这样的格式),即可绕过特殊字符的解析问题。
2. 修改路径生成逻辑,避免特殊字符
如果路径中的分号来自自动生成的时间戳(比如2023-05-14T14;59;45.321229),可以直接调整生成逻辑,将时间戳中的分号替换为下划线、点或其他合法字符(比如2023-05-14T14_59_45.321229),从根源上避免路径包含分号或逗号这类会触发解析异常的字符。
注意:尝试^;或\;转义是无效的,Chrome/Edge在Windows下的路径解析逻辑不支持这类转义方式;用双引号包裹路径也会被视为路径的一部分,导致无法找到目标文件。
内容的提问来源于stack exchange,提问作者Gleam
相关产品推荐
相关产品推荐

