ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Word 文档对比工具 ExtDiff 上手教程:3 种用法 5 分钟搞定 docx 文件差异

2026/8/16 19:36:48 拓冰建站 浏览量
Word 文档对比工具 ExtDiff 上手教程:3 种用法 5 分钟搞定 docx 文件差异

Word 文档对比工具 ExtDiff 上手教程:3 种用法 5 分钟搞定 docx 文件差异

【免费下载链接】ExtDiffCompare documents using MS Word from the command line.项目地址: https://gitcode.com/gh_mirrors/ex/ExtDiff

写文档改方案最怕什么?十有八九是"两个 Word 版本到底哪里不一样"。ExtDiff 正是为解决这个痛点而生的免费命令行工具:它借助 Microsoft Word 自带的文档比较能力,通过一行命令或一次拖拽,就能把新老两份 docx 文件的差异高亮标注出来,全程无需安装任何额外的对比软件。

为什么你需要一个"Word 专用"的差异比较工具

先看三个你大概率踩过的坑:

  • 普通 diff 工具认不出 docx。docx 本质是压缩包格式,diff 工具打开看到的是一堆 XML 乱码,而不是"这句话被删了、那段被改过"的直观结果。
  • 手动逐段比对效率太低。文档一长,肉眼找差异堪比玩"大家来找茬",改过一个小数点都能漏掉。
  • Word 自带的比较功能入口深、步骤多。每次都要"审阅 → 比较 → 选择文件",还要记得保存路径,重复操作极其繁琐。

ExtDiff 的思路很简单却极其有效:它通过 COM 自动化直接调用 Word 内置的Compare 功能,把繁琐操作压缩成一条命令。你只需要提供旧文件和修订版文件,剩下的标记修订、高亮差异全部交给 Word 完成。

整个项目非常轻量,核心就是这几个文件,全部可以直接查看或修改:

文件作用
Diff-Word.ps1命令行对比的核心脚本
Gui-Diff-Word.ps1图形拖拽界面的实现
diff-word.cmd命令行入口的批处理代理
diff-word-wrapper.cmd专为 Git 集成准备的包装脚本
start-gui.cmd一键打开图形界面的入口
docs/ui-screenshot.png图形界面的效果截图

开始之前:先确认 3 个前置条件

在动手之前,花 30 秒确认环境是否满足要求,可以避免后面踩坑:

  1. 操作系统是 Windows。脚本基于 Windows 的 PowerShell 和 COM 机制运行,这是硬性前提。
  2. 已安装 Microsoft Word。ExtDiff 本身不实现"比较算法",它调用的是你电脑上安装的 Word(2010 及以上版本均可),所以 Word 是必须的。
  3. 拿到项目文件。最简单的办法是直接克隆仓库:
git clone https://gitcode.com/gh_mirrors/ex/ExtDiff

克隆完成后,把命令行切换到项目目录,就可以开始第一次比较了。

3 分钟跑通第一次命令行对比

命令行用法是整个工具的"主菜",也是最容易上手的部分。先准备好两份文档,比如draft.docx(旧版)和final.docx(修订版),然后执行:

powershell -File Diff-Word.ps1 draft.docx final.docx

如果你更习惯用批处理文件,效果完全一样,命令还能短一截:

diff-word.cmd draft.docx final.docx

命令执行后,Word 会自动打开并显示一个"比较结果"窗口,所有增删改的内容都以修订标记的形式清晰呈现,操作逻辑和 Word 内建的比较完全一致,只是省去了所有手动步骤。

这里有两个贴心的小细节值得一说:

  • 路径兼容~等 PowerShell 写法。脚本内部会用Resolve-Path解析你传入的路径,所以即使路径是相对路径或带波浪号的形式也能正确识别。
  • 自动处理只读文件。Word 无法直接比较只读文件,脚本会检测并自动去除旧文件的只读属性,避免比较中途报错。

不想敲命令?用图形界面拖拽对比

如果你觉得记命令太麻烦,或者对方是"双击党",那一定要试试图形界面。直接运行:

start-gui.cmd

屏幕上会弹出一个固定在所有窗口最上层的小窗体(就是上面截图里的样子),用法简单到不需要任何说明:

  1. 从资源管理器里把旧文档拖进上面那个输入框;
  2. 修订版文档拖进下面那个输入框;
  3. 点击Compare按钮,Word 就会带着比较结果窗口弹出来。

窗口"永远置顶"这个设计细节非常实用——你从资源管理器拖文件时,窗体不会被其他窗口挡住。拖拽完成后点击Clear按钮,两个输入框会被清空,窗体也会重新回到置顶状态,方便你连续比较多组文档。

对比一下:命令行适合批量操作和 Git 集成,图形界面适合临时快速比对,两种方式互补,覆盖了绝大多数使用场景。

进阶玩法:让 git diff 也能对比 Word 文档

如果你把 Word 文档放在 Git 仓库里,一定体验过这种挫败感:git diff看 docx 只会输出一堆二进制乱码,改没改、改了啥全靠猜。ExtDiff 提供了一条很优雅的解决路径——把 Word 配置成 Git 的 docx 专用 diff 工具

操作只有两步,全程不需要写代码。

第 1 步:配置.gitattributes

在仓库根目录新建或打开.gitattributes文件,加入一行:

*.docx diff=word

这行配置的意思是:所有 docx 文件都使用名为word的自定义 diff 驱动。

如果你希望所有仓库都生效,可以把.gitattributes放在用户主目录,再执行一条命令让它全局生效:

git config --global core.attributesfile ~/.gitattributes

第 2 步:配置.gitconfig

在用户主目录的.gitconfig文件末尾追加如下内容:

[diff "word"] command = <ExtDiff所在目录>/diff-word-wrapper.cmd

<ExtDiff所在目录>替换成你克隆项目时实际的磁盘路径即可。

这里必须为 diff-word-wrapper.cmd 点赞:Git 在调用外部 diff 工具时会传入一大串参数,这个包装脚本专门做了参数适配(把第 2 个和第 5 个参数——即新旧临时文件路径——提取出来转交给 diff-word.cmd),相当于帮 Git 和 ExtDiff 之间搭了一座桥。配置完成后,再执行git diff看 docx 文件,弹出的就是 Word 的比较窗口,改动一目了然。

遇到报错怎么办:3 个高频问题排查

任何工具都难免有意外,这里把最高频的 3 类问题列出来,方便你对症下药:

现象可能原因解决办法
报错提示 Word 无法打开文档目标文件正被其他程序占用,或路径拼写有误关闭占用程序;确认两个文件路径真实存在,文件名和扩展名完整
弹窗提示 COM 相关错误系统里没有安装 Word,或 Office 安装不完整安装/修复 Microsoft Word,并确认能正常手动打开 docx
文件比较结果未包含某些改动其中一个文件是只读或带修订的副本确认传入的是"纯净"的旧版与新版;脚本会自动处理只读属性,若仍异常可手动去掉只读后重试

脚本捕获到异常时会弹出 Windows 消息框直接显示错误内容,这条信息非常关键,把它复制出来去搜索或反馈,定位问题会快得多。

下一步:把 ExtDiff 用出更多花样

到这里,命令行、图形界面、Git 集成三种用法你都已经掌握了。接下来想更进一步,可以试试这些方向:

  • 阅读 Diff-Word.ps1 源码,看看 COM 调用的核心逻辑,按需定制比较参数(例如修改 Gui-Diff-Word.ps1 里的窗口尺寸或按钮文案);
  • *.docx diff=word扩展到更多后缀,比如*.doc*.rtf,让其他格式的文档也享受同样的待遇;
  • 翻一翻 CHANGELOG.md 了解版本演进脉络,顺手在 License.md 确认一下 MIT 协议下的使用边界,放心把它接入你的日常工具链。

从今天起,再遇到"这版改了什么"的灵魂拷问,记得有 ExtDiff 这个免费小工具替你兜底。

【免费下载链接】ExtDiffCompare documents using MS Word from the command line.项目地址: https://gitcode.com/gh_mirrors/ex/ExtDiff

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考