24.3 Windows: 使用 Starship 的 pwsh 会话失败: - 文件路径保留单引号
说明
在 Windows 上,当 XPipe Starship ** 终端提示启用时,打开本地的pwsh**会话失败. 终端显示:
参数'D:\TEMP\\\\xpipe-19056262.ps1'不承认为脚本文件的名称. 请检查access-date=中的日期值 (帮助) 请检查access-date=中的日期值 (帮助) 名称的拼写,或者是否包含一个路径,核实路径是否正确,再试一次.
用法: pwsh [.exe] [- Login] [[-放 [args]]]. 按 [r] 重新启动或任何其他键结束此会话.'D:\TEMP-XPipe-..ps1''中的额外引文取自pwsh的论据'{0}'格式化'。 这一过程实际上收到了“-File”和路径**,包括单引号**:'D:\TEMP\\xpipe-.ps1'。
临时脚本存在且有效. 这不是一个失踪文件问题。
环境
- XPipe 24.3(退后对24.2;pwsh +星舰在本更新前工作)
- Windows 11(建造26200)
- PowerShell 7.6.6(`C:\Program 文件\PowerShell\7\pwsh.exe')
- 还有Windows PowerShell 5.1
TEMP'/TMP' =`D:\TEMP'(无空格)- 终端模拟器无关紧要:用WezTerm和Windows终端**复制。
- XPipe终端快讯:星舰
- 复制步骤
- 视窗,XPipe 24.3
- 设置 / 终端提示 / ** Starship ** (即使空配置)
- 打开本地 ** 此 PC (pwsh) **会话
- 观察上述错误
预期
pwsh 启动,运行"星舰" init 脚本,并降入交互式会话.
实际数
pwsh 拒绝 init 脚本, 并且从不开始会话 。
? 哪些可行/哪些不可行 ?
案件结果 |-|-|-.
- 24.3 + pwsh + 星舰 + 失败 (Wez Terminal and Windows Terminal) + QQ
- 24.3 + pwsh + 已失效的星舰 + 工程 + 工程
- 24.3 + cmd + 星舰 (Clink) + 工作 + 工作 + 工作
- 24.2 + pwsh + 星舰 + 工作 + 工作
技术细节
Starship 使 XPipe 写出一个会话init 脚本, 例如 : “ D:\TEMP\\xpipe-19056262. ps1 :
动力壳 $env:PATH="$v:PATH;D:\TEMP\\xpipe\bin\ starship" (美国英语). $env:STARSHIP CONFIG='D:\TEMP\\xpipe\starship\starship-2080978541.toml' (英语). Invoke- Express (( & starship init powershell) ) (英语).
24.3 还增加了一个UTF-8编码包装器,用PowerShell风格的单引文重启:
& "$v: systemRoot\ system32\chcp.com" 65001 出-Null(出) powershell.exe - NoProfile - NoLogo - 执行政策 远程签名 - File 'D:\TEMP\\Xpipe-1147121757.ps1'
在Windows上,cmd / CreateProcess / 终端发射器只将双引号作为分隔符处理. 单引出入辩相.
Windows上的pwsh 7.2+只接受 - 以.ps1.'D:\TEMP\\\\xpipe-..ps1'结尾的文件路径,所以pwsh报告“不被确认为脚本文件的名称”而不是文件未找到的路径 。
同样通过 cmd 引用 准确的错误:
cmd /c "pwsh.exe - NoProfile - File'D:\TEMP\\xpipe-19056262.ps1" (英语).
cmd Starship 发射器是好的,因为它们使用双引号:
cmd.exe / C":\TEMP\\xpipe-." 战斗.
Windows终端的发布仍然运行着同样的.ps1包装:wt.exe. powershell.exe - 无文件 - 执行政策 . . . . . . .
内容来源: xpipe-io/xpipe