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

批处理文件:重定向tree命令输出至文件时为何出现奇怪ASCII字符?

为什么Windows的tree命令重定向后会出现奇怪的ASCII字符?

先看问题场景:执行下面的批处理代码后,非根文件夹行首出现类似带下划线的上标"a"的奇怪字符,即使直接在Win11命令提示符里执行tree >tempfile再type tempfile也会复现,和findstr等操作无关。

批处理代码:

if "%DispMode%"=="tree" (
 tree >temp
 findstr /b /v /c:"F" temp >>temp2
 del temp >nul
 findstr /b /v /c:"V" temp2 >>temp
 del temp2 >nul
 findstr /b /v /c:"A" temp >>temp2
 del temp >nul
 type temp2
 del temp2 >nul
)

原因解释

这是字符编码不匹配导致的:

  • Windows的tree命令默认输出的是OEM代码页(比如437或850,DOS时代的字符集)里的方框绘图字符,用来显示树形结构的连线(比如├、└这类线条)。
  • Win11的命令提示符默认使用UTF-8代码页(65001),当你把tree的输出重定向到文件,再用type查看时,UTF-8编码环境会把OEM的绘图字符错误解码,就变成了你看到的奇怪符号(那个带下划线的"a"其实是OEM字符集中的连线字符被乱码后的结果)。

验证方法

在命令提示符里执行chcp 437切换到OEM代码页,再执行type tempfile,就能看到正常的树形连线字符了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:45:28