
无需翻页逐行核对3 分钟上手 ExtDiff用命令行和 Git 快速对比 Word 文档差异【免费下载链接】ExtDiffCompare documents using MS Word from the command line.项目地址: https://gitcode.com/gh_mirrors/ex/ExtDiff手头有一份文档的初稿和改稿你想知道到底改了什么、删了什么、添了什么通常的做法是什么打开 Word点审阅再点比较弹窗里选来选去等 Word 慢悠悠吐出一个修订窗口。一次两次倒还好可如果你天天要核对合同、标书、论文的不同版本或者想把 docx 纳入 Git 做版本管理这套手动流程就显得又笨又慢——更别提git diff看到 docx 时直接吐出一屏乱码。ExtDiff 就是专门来救场的。它是一个小巧到只有几个脚本的开源工具核心功能一句话就能讲清楚调用微软 Word 自带的文档比较引擎在命令行、图形界面甚至 Git 里快速对比两份 Word 文档的差异。它免安装、零依赖、不占资源只要电脑上装有 Microsoft Word立刻就能开工。先聊聊它凭什么好用市面上能对比 Word 的工具不少但 ExtDiff 的思路很特别它不自己实现任何比对算法而是做一个遥控器把指令发给 Word 内部的 Compare 功能。这意味着什么意味着你看到的对比结果和 Word 里手工点出来的完全一致——删除、插入、格式改动全部用修订标记标得清清楚楚没有任何翻译失真。它的另一大价值是把文档对比从手动操作变成可编程动作。一旦脚本能跑你就能把它接进批处理、接进构建流程、接进 Git让对比这件事自动化。对于经常处理文档版本的人来说这比装一个重型办公套件要轻量得多。3 分钟快速上手跑通第一次对比上手流程简单得有点不像话总共三步。第 1 步确认环境。你需要一台 Windows 电脑、已安装 Microsoft Word以及系统自带的 PowerShellWindows 7 及以后的系统都自带不用额外装。第 2 步把脚本拿到本地。用下面命令把仓库克隆下来git clone https://gitcode.com/gh_mirrors/ex/ExtDiff不想用 Git 也没关系直接把仓库里的文件下载到任意文件夹同样能用——它没有编译、没有安装步骤拿到即是可用状态。第 3 步执行对比。打开命令提示符进入 ExtDiff 所在目录运行diff-word.cmd 旧版本文档.docx 新版本文档.docx命令敲完你会看到 Word 被自动启动紧接着弹出一个带修订标记的对比结果窗口两份文档的差异一目了然。从敲命令到看到结果全程不到几秒钟。是不是很简单命令行用不惯没关系同目录下还有 PowerShell 直调版本效果完全一样powershell -File Diff-Word.ps1 旧版本文档.docx 新版本文档.docx顺带一提脚本里藏着两个小细节体现了作者的贴心一是它会先用Resolve-Path把传入的相对路径解析成绝对路径再交给 Word所以你可以放心用~指代家目录二是如果旧文档是只读属性它会先自动去掉只读标记因为 Word 无法直接比较只读文件。这些细节你都不用操心工具已经替你兜住了。不想敲命令试试拖拽即用的图形界面如果你更习惯用鼠标ExtDiff 同样给你准备了图形界面。运行同目录下的start-gui.cmd会弹出一个标题为 Compare MS Word Documents (drop files here) 的小窗口如上图所示。这个窗口的设计非常懂用户它始终置顶方便你从资源管理器往里面拖文件。上面一个输入框放旧文档下面一个放新文档把文件直接拖进去就行路径会自动填好。点一下Compare按钮Word 就带着对比结果窗口出现了而那个小窗体则会自动取消置顶、退到后台免得挡住 Word 的视线。想再来一组对比点Clear清空输入框窗体又会恢复置顶状态等你拖入下一对文件。整个交互逻辑就三个词拖、比、清。哪怕是从没用过命令行工具的同事也能零学习成本上手。把 docx 的 git diff 变成人话前面说过git 面对二进制格式的 docx 时束手无策。而 ExtDiff 最惊艳的用法就是让git diff直接调用 Word 来对比 docx 的差异——从此你在仓库里改过文档敲一条git diff就能看到 Word 修订视图而不是天书般的乱码。配置分两步都在你本地完成和仓库本身的代码无关。第一步告诉 Git 哪些文件用自定义对比。在仓库根目录创建或编辑.gitattributes文件加一行*.docx diffword如果你希望全系统所有仓库都生效可以在主目录创建一个全局的.gitattributes然后执行git config --global core.attributesfile ~/.gitattributes第二步把对比动作绑定到 ExtDiff 脚本。编辑主目录下的.gitconfig文件加入下面这段把路径换成你克隆 ExtDiff 的实际位置[diff word] command C:/path/to/ExtDiff/diff-word-wrapper.cmd这里用到的diff-word-wrapper.cmd是项目专门为 Git 准备的翻译官Git 调用外部 diff 工具时会一次性传入 7 个参数旧文件路径、新文件路径、权限、哈希等普通脚本根本看不懂而这个包装脚本会精准挑出第 2 个参数旧文件临时副本和第 5 个参数新文件临时副本再交给diff-word.cmd去执行。配置完毕在仓库里改动一个 docx 再执行git diffWord 会带着修订窗口告诉你改了什么。把文档对比正式纳入版本控制的体验用过一次就回不去了。避坑指南这些坑我已经替你踩过了实践过程中有几个问题出现频率很高提前知道能帮你少走弯路。报错说找不到 Word 或 COM 组件。说明这台机器没装 Microsoft Word或者安装不完整。记住 ExtDiff 的本质是Word 的遥控器没有 Word 一切无从谈起另外请确认用的是完整版 Word而非某些精简阉割版本。PowerShell 提示禁止运行脚本。这是系统默认的执行策略在拦截。最简单的办法是用diff-word.cmd批处理入口绕过或临时放行执行策略后再运行脚本。路径里有空格或中文。命令行模式下记得用英文双引号把路径包起来例如diff-word.cmd D:\我的文档\旧版.docx D:\我的文档\新版.docx。对比结束后只留下一个空窗口这其实是正常现象。脚本会主动关闭原文档只保留带修订标记的对比结果窗口方便你直接查看或另存不会被无关窗口干扰。git 配置后 diff 没生效。先确认.gitattributes文件确实被读取改动后可能需要重新git add相关文件如果是全局配置检查core.attributesfile路径是否指向正确的全局文件。想对比的不是 docx脚本本身并不限定格式理论上所有 Word 能打开并支持比较的文档类型都可以一试但项目主要围绕 docx 设计和验证。写在最后ExtDiff 算不上宏大但它把对比 Word 文档这件事做到了极致的顺手命令行一行命令、图形界面拖拖拽拽、Git 集成一键接入三种姿势覆盖了从新手到进阶的全部使用场景。它不重新发明轮子而是聪明地借力 Word 自带的比较引擎让结果永远和你熟悉的修订视图保持一致。如果你的工作日常离不开 Word 文档的版本核对或者正为二进制文件的版本管理发愁花三分钟把这个小工具捡起来说不定就是一次效率的跃迁。延伸阅读完整的版本演进记录见 CHANGELOG.md授权协议见 License.md图形界面效果图可查看 docs/ui-screenshot.png。【免费下载链接】ExtDiffCompare documents using MS Word from the command line.项目地址: https://gitcode.com/gh_mirrors/ex/ExtDiff创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考