Skip to content

[Windows][CLI] Bundle 中的扩展路径 \\?\D:\... 被 Node 错误解析为 D: #657

Description

@CL-SC552

环境

ReadAny Desktop:v1.3.5

ReadAny CLI:v0.1.0

Windows 版本:Windows 11 x64

Node.js:v24.13.0

安装位置:非系统盘,例如 D:\Programs

问题描述

在 ReadAny 的“设置 → 外部 AI 访问”中诊断或安装 CLI 时,桌面端使用 Bundle 内的 CLI,生成的执行命令类似:

node \?\D:\Programs\readany-cli\bin\readany.js

Node 没有正确识别该入口脚本,而是将其解析为盘符目录 D:,导致 ReadAny 无法检测 CLI。

复现步骤

在 Windows 上将 ReadAny 安装到 D 盘等非系统盘。

打开“设置 → 外部 AI 访问”。

展开 ReadAny CLI。

点击“诊断”“安装”或执行工具检查。

查看执行来源及错误信息。

实际结果

ReadAny 显示 CLI 未检测到,并出现以下错误:

Error: EISDIR: illegal operation on a directory, lstat 'D:'
at Object.realpathSync (node:fs:2746:25)
at toRealPath (node:internal/modules/helpers:62:13)
at Module._findPath (node:internal/modules/cjs/loader:775:22)
at resolveMainPath (node:internal/modules/run_main:35:21)

诊断信息中的命令类似:

{
"command": "node \\?\D:\Programs\readany-cli\bin\readany.js",
"command_source": "bundle",
"status": 1
}

预期结果

ReadAny 在 Windows 上调用 Bundle CLI 时,应向 Node 传递能够正常执行的入口路径,例如:

D:\Programs\readany-cli\bin\readany.js

或者在执行前将 Windows 扩展路径转换为 Node 可以正确处理的普通绝对路径。

已验证的临时解决办法

设置用户环境变量:

READANY_DESKTOP_CLI_BIN=D:\Programs\readany-cli\bin\readany.js

完全退出并重新启动 ReadAny 后,桌面端改用普通绝对路径,CLI v0.1.0 可以正常检测和运行。

整个处理过程没有修改 ReadAny 主程序或 readany.js。

建议

建议检查 Windows/Tauri 资源路径在传递给 Node 入口脚本前的规范化逻辑,尤其是:

非系统盘安装;

\?\ 扩展路径;

含空格的安装路径;

不同 Node.js 版本。

如果新版已经自动处理该路径,也建议让界面说明实际使用的是 Bundle CLI、环境变量覆盖路径还是 PATH 中的 CLI。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions