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

MSYS2 ls.exe在CMD/PowerShell输出乱码,寻求正常使用方法

在CMD或PowerShell中正常使用MSYS2工具(解决乱码与调用问题)

问题场景

  • 在Windows的CMD或PowerShell中直接执行命令:c:\tools\msys2\usr\bin\ls.exe
  • 输出出现转义字符序列:$'\343\200\214\345\274\200\345\247\213\343\200\215\350\217\234\345\215\225'
  • 该工具在MSYS2的MinTTY bash中运行正常,需求为在CMD/PowerShell中直接使用ls及其他MSYS2工具

环境信息

MSYS_NT-10.0-25300 version 3.4.5.x86_64 (runneradmin@fv-az411-742) (gcc version 11.3.0 (GCC) ) 2023-01-20 09:17 UTC


解决方案

1. 修复乱码问题

MSYS2工具默认输出UTF-8编码,而CMD/PowerShell默认控制台编码不匹配,需先调整编码:

  • CMD环境:执行命令 chcp 65001 切换控制台为UTF-8编码,之后再运行MSYS2工具
  • PowerShell环境:执行以下命令设置编码:
    [Console]::OutputEncoding = [System.Text.UTF8Encoding]::UTF8
    [Console]::InputEncoding = [System.Text.UTF8Encoding]::UTF8
    

2. 实现便捷调用(添加到PATH)

将MSYS2的bin目录加入系统环境变量PATH,无需输入完整路径即可调用工具:

  1. 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量
  2. 在系统变量的Path条目里添加 c:\tools\msys2\usr\bin
  3. 重启CMD/PowerShell使设置生效

3. 加载完整MSYS2环境(解决依赖缺失)

如果直接调用工具仍出现异常,可通过MSYS2的bash加载完整环境后执行工具:

  • CMD中执行:
    c:\tools\msys2\usr\bin\bash.exe -lc "ls"
    
  • PowerShell中执行:
    & c:\tools\msys2\usr\bin\bash.exe -lc "ls"
    

这种方式会加载MSYS2的全部环境变量,避免工具依赖缺失的问题


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:48:24