---
title: "自动生成差异报告"
date: "2018-05-22"
categories: 
  - "applications"
  - "software"
  - "tools"
tags: 
  - "comparison-tool"
  - "diffdog"
  - "diffdog-server"
description: DiffDog Server 能够自动生成文件、目录和网址的差异报告，适用于各种平台，从而提高开发人员的工作效率。以下是其工作原理。
---
Status: #blog

Tags:  #comparison-tool #diffdog #diffdog-server

Categories: [xml](/blog/zh/category/xml.md) | [development](/blog/zh/category/development.md)
# 自动生成差异报告

DiffDog Server 能够轻松实现大规模文件的自动化比较，并生成对比报告，比较文件、目录和网址。这款高性能的服务器软件适用于 Windows、Linux 和 MacOS X 操作系统。

开发人员长期以来一直依赖 DiffDog 来比较 XML、文本和二进制文件，以及目录和网址。现在，DiffDog 的强大功能已集成到一款极速的服务器软件中，可以轻松地自动化大型比较任务。

例如，DiffDog Server 非常适合在指定时间自动生成关键文件和目录的差异报告，例如每天、每周一次等。

[![](/blog/images/3WaysComparision07a.jpg)](3WaysComparision07a.jpg)

<!--more-->

DiffDog 服务器支持以下类型的比较：

- 二进制文件、文本文件和 XML 文件
- 目录（包括 ZIP 压缩文件）
- 网址
- 双向目录比较和双向或三向文件差异比较

一旦在您网络中的一台机器上安装了 DiffDog Server，它将作为一项服务运行。您可以通过命令行界面或可执行脚本来调用 DiffDog Server，从而进行比较操作。

您可以在安装了 DiffDog Server 的服务器上直接比较文件，也可以从客户端机器远程调用比较功能。DiffDog Server 的安装包包含一个便携式的 DiffDog 命令行客户端，您可以将其复制到组织内的多台机器上，从而允许用户远程调用正在运行的 DiffDog Server。

让我们从一个简单的目录比较开始，使用 DiffDog 服务器的命令行客户端。下图展示了目录比较命令的简单形式，其中 "diff" 命令通过一些选项进行了修改：

- "dc" 是 "dir-compare-contents" 的缩写，它指示服务器比较匹配文件的内容，而不仅仅是文件大小和创建日期
- `om=xml` 指定使用 XML 输出模式，而不是文本模式
- `o=results.xml` 将结果发送到一个名为 "results.xml" 的文件中
- `directory1` 和 `directory2` 指定了要进行比较的两个目录的路径

[![一个简单的 DiffDog 服务器目录比较命令示例](/blog/images/DiffDog-Server-command-example-1.png)](DiffDog-Server-command-example-1.png)

以下是 DiffDog 服务器命令行客户端的 `diff` 命令的部分执行结果，用于比较包含 XMLSpy 示例的两个目录，这两个目录分别来自 v2018 和 v2017 版本：

[![DiffDog 服务器目录比较功能的执行示例](/blog/images/DiffDog-Server-command-example-2.png)](DiffDog-Server-command-example-2.png)

在执行窗口中显示完整的比较结果是可选的，而且可能是不必要的，因为我们将结果也输出到了一个 XML 格式的文件。以下是在 XMLSpy 中查看到的结果文件的一部分：

[![DiffDog 服务器命令的结果，用于自动生成差异报告](/blog/images/dir-compare-result-xml.png)](dir-compare-result-xml.png)

除了直接执行之外，DiffDog 命令行客户端的指令可以包含在批处理文件或其他脚本中，以实现自动化执行。此外，DiffDog 命令行客户端工具可以分发给网络上的多个用户，以便他们可以在运行 DiffDog Server 的服务器上执行命令。

### 与 DiffDog 的集成

DiffDog 允许用户比较和合并不同目录或文件之间的差异，甚至可以同时显示三个文件进行对比。这个功能尤其适用于在任何版本控制系统中管理的文件，因为两个用户可能从同一个源文件开始，然后进行不同的修改，这些修改需要进行合并。下面的例子展示了对 XML 文件不同版本进行的三向比较。

[![DiffDog软件中的三文件比较功能](/blog/images/diffdog-3-way.png)](diffdog-3-way.png)

DiffDog 中定义的任何文件或文件夹比较设置都可以保存到文件中，以便重复使用。这些比较指令集包含了目录或文件的完整路径，以及最初设置的所有 DiffDog 比较选项，甚至还包括可选结果文件的名称和位置。

在DiffDog中创建比较文件（例如.filedif和.dirdif文件）后，您也可以在服务器环境中进行比较。这使您可以将常用的比较操作自动化，并将其集成到您自定义的脚本或流程中。

DiffDog 的命令行客户端提供了一个导入命令，可以简化重复比较的创建和重用。该命令通过导入 .filedif 或 .dridif 文件来实现，具体操作方式如下：

[![DiffDog 服务器导入命令，用于自动生成差异报告](/blog/images/command-example-3.png)](command-example-3.png)

以下是上述三向比较结果 XML 文件的部分内容：

[![DiffDog 服务器文件比较的差异结果](/blog/images/file-results-example.png)](file-results-example.png)

到目前为止，我们所有的示例都使用了 XML 文件，但 DiffDog Server 提供了许多额外的比较选项，可以自动生成差异报告。DiffDog Server 允许您自动生成文本文件、源代码文件、XML 文件、JSON 文件以及 Word 文档的差异报告。这些差异报告采用业界广泛接受的 Unix 差异格式。

以下截图展示了 DiffDog 对三个 JSON 文件的差异比较，这些 JSON 文件包含与上方三个 XML 文件比较中相同的数据。

[![DiffDog：JSON 文件的三向比较工具](/blog/images/json-3-way.png)](json-3-way.png)

我们将这些比较设置保存在名为 "FileCompare2.filedif" 的文件中，然后使用以下命令执行了 DiffDog Server 的比较：**DiffDogCmdlClient import FileCompare2.filedif**

我们以文本格式生成了本次比较的结果文件，以下是部分内容的展示：

[![用于自动生成 JSON 文件差异结果的命令结果文件](/blog/images/json-results.png)](json-results.png)

亲自体验一下 DiffDog Server 如何在您的 Windows、Linux 或 MacOS X 服务器上自动生成差异报告——[下载一个功能齐全的、免费的 30 天试用版](https://www.altova.com/zh/download)！

（或者，如果您需要一款桌面工具来比较和合并文本文件或源代码文件、XML或JSON文件，以及Word文档，或者比较和同步目录、数据库等等，[您可以下载DiffDog的免费试用版](https://www.altova.com/zh/download)。）
