ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

只需一条命令就能对比两份 Word 文档?ExtDiff 快速上手与 Git 集成教程

只需一条命令就能对比两份 Word 文档?ExtDiff 快速上手与 Git 集成教程 只需一条命令就能对比两份 Word 文档ExtDiff 快速上手与 Git 集成教程【免费下载链接】ExtDiffCompare documents using MS Word from the command line.项目地址: https://gitcode.com/gh_mirrors/ex/ExtDiff收到同事发来的最终版2.0.docx你一边开着旧文件一边开着新文件来回切换红着眼睛找改动点——这种痛苦做过文档协作的人都懂。如果能像git diff一样一条命令就看出两份 Word 文档的差异呢ExtDiff 正是为此而生一个用 PowerShell 调用微软 Word 内置对比功能的小工具让.docx文档对比变得和代码 diff 一样干脆。下面带你从零跑通它再把它接进 Git让版本控制真正管住你的文档。1. 先搞懂它在解决什么问题一句话概括ExtDiff 是命令行版的 Word 文档对比器。它自己不做任何文档解析而是通过 COM 自动化把比较文档这个动作交给 Word 本体去完成。所以你最终看到的对比结果就是 Word 原汁原味的修订模式——删除的内容划线、新增的内容标色完全符合你平时用 Word 审阅的习惯。它主要服务于 Word 系文件.docx、.doc特别适合写文档、做合同的团队。如果你只是对比两个纯文本文件有更轻量的工具可用ExtDiff 的价值恰恰在于把文档人和命令行这两件看似不搭的事连了起来。2. 3 分钟快速上手从克隆到看到第一份对比结果先确认环境三样缺一不可Windows 系统脚本依赖 COM 自动化Linux/macOS 用不了已安装 Microsoft Word任意较新版本即可PowerShellWindows 自带无需额外安装。接下来克隆项目git clone https://gitcode.com/gh_mirrors/ex/ExtDiff人话把项目下载到本地整个仓库只有几个文件不需要任何安装流程下载完就能用。然后对比两份文档二选一diff-word.cmd old.docx new.docx或者直接用 PowerShellpowershell -File Diff-Word.ps1 old.docx new.docx执行后 Word 会自动启动并打开一个新文档把old.docx旧版和new.docx新版之间的差异以修订标记的形式呈现出来增删改一目了然对比完成后原文件也不会被改动。到这里你已经完成了第一次命令行对比 Word 文档 3. 三个核心文件一句话讲透项目文件不多真正需要认识的就三个Diff-Word.ps1真正干活的脚本它做了三件事把传入的两个路径解析成绝对路径 → 用New-Object -ComObject Word.Application在后台启动 Word → 调用document.Compare(...)让 Word 执行对比。人话就是它是个遥控器按下按钮让 Word 自己去比较。脚本里还有两处贴心细节常量wdDoNotSaveChanges 0表示对比完不保存原文档开头会先解除文件的只读属性因为Word 无法对比只读文件。diff-word.cmd给懒人准备的壳.cmd文件不能直接调用.ps1所以它负责用powershell.exe -File把参数原样转交给脚本让你在 CMD 里也能舒服地使用。你平时完全可以只记住diff-word.cmd这一条命令。start-gui.cmdGui-Diff-Word.ps1拖拽版界面如果你不想记命令运行start-gui.cmd会弹出一个置顶的小窗口把两个文件从资源管理器直接拖进输入框点Compare出结果点Clear清空重来。界面简单到不能再简单对不熟命令行的同事把start-gui.cmd丢给他就够了。4. 小实战让git diff直接对比 docx这一步 10 分钟能搞定做完之后你在 Git 仓库里改动.docx并执行git diff差异会直接以 Word 对比窗口的形式弹出来不再是一堆乱码。第一步在仓库根目录创建或修改.gitattributes加一行*.docx diffword人话告诉 Git所有.docx文件用名为word的自定义对比工具来处理。第二步编辑家目录下的.gitconfig追加[diff word] command /path/to/ExtDiff/diff-word-wrapper.cmd人话把word这个名字指向 ExtDiff 的包装脚本路径换成你电脑上仓库的真实位置。第三步改动一个.docx并提交然后执行git diff验收成果。这里有个小知识点git diff传给自定义工具的参数很多而diff-word-wrapper.cmd只把%2旧文件和%5新文件转发给了diff-word.cmd——这个挑参数、转手的动作就是它存在的全部意义。5. 新手最容易踩的 5 个坑没装 Word 或只装了 WPS脚本通过Word.Application这个 COM 组件找 WordWPS 不注册该组件会直接报错。解决安装 MS Word 再试。PowerShell 提示禁止运行脚本被执行策略拦住了。解决用管理员身份运行Set-ExecutionPolicy RemoteSigned或者干脆走diff-word.cmdCMD 不受该策略限制。路径带空格或中文报找不到文件给路径加上英文双引号即可脚本内部已用Resolve-Path解析成绝对路径还支持~表示主目录。配置好 Git 集成后git diff没反应九成是.gitconfig里的command路径写错或.gitattributes没生效。核对路径是否真实存在确认文件在仓库根目录。对比结果方向反了old放前面、new放后面顺序颠倒会把增删方向弄反看起来像改动回退 ⚠️6. 现在去把文档纳管起来吧ExtDiff 的全部价值可以浓缩成一句话把专业但琐碎的 Word 文档对比压缩成一条命令。如果你身处文档驱动的团队把.docx纳入 Git、再用上这个小工具整个协作链路会顺畅很多。觉得它好用就顺手点个 Star想深入了解实现细节仓库里的 Readme 和 CHANGELOG 记录了它从 2016 年至今的每一步演进值得一读。【免费下载链接】ExtDiffCompare documents using MS Word from the command line.项目地址: https://gitcode.com/gh_mirrors/ex/ExtDiff创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表