找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 693|回复: 8

[文件操作] 分享自己编译的 xxd

[复制链接]
发表于 2026-10-29 23:00:34 | 显示全部楼层 |阅读模式
本帖最后由 87zrjojo 于 2026-11-3 16:44 编辑

最近看到xxd这个工具,感觉挺好用的,看论坛分享的也比较老了,就学着自己编译了一下。源代码是从github官方源代码库中获取的。

这个工具的代码做得很人性化,不需要修改任何代码,就可以编译成功,也没什么难度。我是在WIN7上用TDM-GCC编译的,测试也没什么问题,在此分享一下。

我不会程序语言,部分改动也是通过AI辅助修改,我再进行了反复测试,后续只是进行了简单编译。如果有问题,请论坛大神们斧正。

  1. Usage:
  2.        xxd.exe [options] [infile [outfile]]
  3.     or
  4.        xxd.exe -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
  5. Options:
  6.     -a          toggle autoskip: A single '*' replaces nul-lines. Default off.
  7.     -b          binary digit dump (incompatible with -ps). Default hex.
  8.     -C          capitalize variable names in C include file style (-i).
  9.     -c cols     format <cols> octets per line. Default 16 (-i: 12, -ps: 30).
  10.     -E          show characters in EBCDIC. Default ASCII.
  11.     -e          little-endian dump (incompatible with -ps,-i,-r).
  12.     -g bytes    number of octets per group in normal output. Default 2 (-e: 4).
  13.     -h          print this summary.
  14.     -i          output in C include file style.
  15.     -t          append terminating zero to C include output (-i).
  16.     -l len      stop after <len> octets.
  17.     -n name     set the variable name used in C include output (-i).
  18.     -o off      add <off> to the displayed file position.
  19.     -ps         output in postscript plain hexdump style.
  20.     -r          reverse operation: convert (or patch) hexdump into binary.
  21.     -r -s off   revert with <off> added to file positions found in hexdump.
  22.     -d          show offset in decimal instead of hex.
  23.     -s [+][-]seek  start at <seek> bytes abs. (or +: rel.) infile offset.
  24.     -u          use upper case hex letters.
  25.     -R when     color output, <when> 'always|never|auto'. Default is 'auto'.
  26.     -v          show version: "2026-06-16 by Juergen Weigert et al. (Win32)".
复制代码


我使用的是TDM-GCC 10.3.0编译的,以下是批处理脚本(附件中有)
  1. @echo off
  2. setlocal
  3. cd /d "%~dp0"

  4. echo ========================================
  5. echo  xxd 编译脚本 (直接调用 gcc)
  6. echo ========================================
  7. echo.

  8. where gcc >nul 2>nul
  9. if errorlevel 1 (
  10.     echo [错误] 未找到 gcc,请确认 TDM-GCC 的 bin 目录已加入 PATH。
  11.     pause
  12.     exit /b 1
  13. )

  14. echo [1/2] 正在编译 32 位版本 xxd32.exe ...
  15. gcc -O2 -Wall -m32 -DWIN32 -D_WIN32_WINNT=0x0501 -static -s -o xxd32.exe xxd.c
  16. if errorlevel 1 (
  17.     echo.
  18.     echo [失败] 32 位编译出错。
  19.     pause
  20.     exit /b 1
  21. )
  22. echo       完成: xxd32.exe

  23. echo.
  24. echo [2/2] 正在编译 64 位版本 xxd64.exe ...
  25. gcc -O2 -Wall -m64 -DWIN32 -D_WIN32_WINNT=0x0501 -static -s -o xxd64.exe xxd.c
  26. if errorlevel 1 (
  27.     echo [失败] 64 位编译出错。
  28.     pause
  29.     exit /b 1
  30. )
  31. echo       完成: xxd64.exe

  32. echo.
  33. echo ========================================
  34. echo  全部编译完成!
  35. echo ========================================
  36. echo  测试:
  37. echo    xxd32.exe -v
  38. echo    xxd64.exe -v
  39. echo.
  40. endlocal
  41. pause
复制代码


使用时发现明明有-R参数,但在WIN7中却不显示颜色,利用AI给源代码修复了一下,在xp-win8.1中应该都能自动显示颜色了,目前测试没发现什么问题

可自动显示数值颜色

可自动显示数值颜色


下载:
xxd用法说明.txt (5.27 KB)
xxd-显示颜色.zip (90.38 KB)
xxd.zip (86.3 KB)

评分

参与人数 1技术 +1 收起 理由
peterboy666 + 1 感谢分享

查看全部评分

发表于 2026-10-31 20:38:25 | 显示全部楼层
这个三方命令xxd.exe是作什么用的?
发表于 2026-11-1 10:52:43 | 显示全部楼层
很不错,赞一个
 楼主| 发表于 2026-11-1 13:23:57 | 显示全部楼层
cutebe 发表于 2026-10-31 20:38
这个三方命令xxd.exe是作什么用的?

我传有说明,如图也可以看出这是一个二进制文件显示转换工具。
发表于 2026-11-1 17:37:26 | 显示全部楼层
类似于debug.exe
发表于 2026-11-2 10:28:47 | 显示全部楼层
87zrjojo 发表于 2026-11-1 13:23
我传有说明,如图也可以看出这是一个二进制文件显示转换工具。

感谢说明。
发表于 2026-11-3 09:24:51 | 显示全部楼层
本帖最后由 peterboy666 于 2026-11-3 09:45 编辑

试了下 还不错.

如果能有类似 dir /p
满页 自动暂停 等按任一键 继续 会更好.

另外
-u 参数 只有 HEX 转为大写, 地址 若能也转 大写 会更好.

-E          show characters in EBCDIC. Default ASCII.
若能改为 显示 ANSI
通常 OS 的 默认 简中是 CP936 繁中是 CP950
这样 文字 就能看到 中文字.

z1.png
 楼主| 发表于 2026-11-3 14:57:23 | 显示全部楼层
peterboy666 发表于 2026-11-3 09:24
试了下 还不错.

如果能有类似 dir /p

感谢反馈。我只会简单的编译,不怎么会编程语言,你说的问题我可能解决不了。如果你有办法实现,欢迎在源代码基础上添加或优化功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-11-15 07:19

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表