Windows cmd使用more命令显示ico文件为文本时如何取消多余换行
问题根因
more命令原生为纯文本场景设计,直接读取二进制文件(如你用到的.ico文件)时,会将文件内的0x00空字节、0x1A(Ctrl+Z,DOS传统文件结束标记)自动识别为换行符,强制拆分输出,同时默认开启分页交互会插入-- More (XX%) --的提示内容,最终和type命令的输出效果不一致。
more命令适配方案
使用输入重定向+扩展参数调用more即可实现和type一致的输出效果,命令如下:
more /c /p /s < imageres_30.ico
参数说明:
/p:核心参数,禁用空字节、换页符的强制换行逻辑/s:将连续空行压缩为1行,避免二进制内容触发大量无效空行/c:输出前清屏,避免终端原有内容干扰,可按需省略- 输入重定向
<:让more从标准输入读取文件内容,跳过直接读取文件时的特殊字符预处理逻辑
如果需要一次性输出全部内容、不显示分页提示,可提前设置环境变量后再执行命令:
set MORE=-p -s more < imageres_30.ico
其他替代内置命令
如果允许使用其他系统内置命令,可选方案如下:
- findstr命令:
findstr /r ".*" imageres_30.ico
正则匹配所有内容行,不会拆分二进制字符,输出效果和type完全一致,无分页提示。
- PowerShell命令:
Get-Content .\imageres_30.ico -Raw
-Raw参数会一次性读取全部内容输出,不会拆分二进制字符。
内容的提问来源于stack exchange,提问作者Andre
相关产品推荐
相关产品推荐

