跳到主要内容

开发 · 命令参考

qzx compareFiles

作用

逐行比较文本文件,并通过精确字节和 SHA-256 比较二进制文件。

命令成熟度:Alpha

可用于真实使用和反馈,但其接口与行为仍可能继续演进。 这是当前开发 checkout 的评估。未来每个不可变发布标签都会保留该版本中包含的准确评估。 可在 PyPI 0.2.2.0.9 使用。文档对应 alpha checkout 0.2.2.0.9。

行为与内置保护

只检查,不改变状态

此操作直接执行

无需调用原生程序即可运行

无需网络即可运行

设计为无需提权即可运行

此安全分类由 OpenAI GPT-5.6 Pro 于 2026-08-25 对照实现摘要 sha256:14fc4e563390c03c8b4fc17e1efdc444e275ec2e8f03986ccaf5153e2e407d2e 审阅。

准确语法

qzx compareFiles <file1> <file2> [mode] [max_bytes] --json

参数

滑动或使用横向滚动条查看所有列。

名称类型必填默认值描述
file1str未声明第一个文件的路径
file2str未声明第二个文件的路径
modestr"full"比较模式:"full"(完整)、"summary"(摘要)或 "percent"(百分比)
max_bytesint1048576每个文件允许的最大大小(字节,默认 1 MiB)

输入示例

qzx compareFiles "file1.py" "file2.py"

比较两个 Python 文件并显示所有差异

qzx compareFiles "file1.txt" "file2.txt" "summary"

显示两个文本文件之间的差异摘要

qzx compareFiles "version1.js" "version2.js" "percent"

显示两个 JavaScript 文件的相似度百分比

qzx compareFiles "image-a.png" "image-b.png"

通过字节和 SHA-256 检查两个二进制文件是否完全相同

要获得完整结构化载荷,请添加 --json: qzx compareFiles <file1> <file2> [mode] [max_bytes] --json

实测输出示例

使用 Windows 11 上的 QZX 0.2.2.0.9 捕获;退出码 0。依赖主机的值和耗时可能不同。

示例命令: qzx compareFiles ../artifacts/qzx-evidence/compare-files/before.txt ../artifacts/qzx-evidence/compare-files/after.txt full --json

{
    "success": true,
    "file1": "../artifacts/qzx-evidence/compare-files/before.txt",
    "file2": "../artifacts/qzx-evidence/compare-files/after.txt",
    "identical": false,
    "added_lines": 1,
    "removed_lines": 1,
    "total_changes": 2,
    "diff": "Differences between '../artifacts/qzx-evidence/compare-files/before.txt' and '../artifacts/qzx-evidence/compare-files/after.txt':\n--- ../artifacts/qzx-evidence/compare-files/before.txt\n+++ ../artifacts/qzx-evidence/compare-files/after.txt\n@@ -1,2 +1,2 @@\n shared line\n-before\n+after\n\nStatistics:\n- Added lines: 1\n- Removed lines: 1\n- Total changes: 2",
    "message": "Compared '../artifacts/qzx-evidence/compare-files/before.txt' with '../artifacts/qzx-evidence/compare-files/after.txt': 1 added and 1 removed lines.",
    "content_type": "text",
    "comparison_basis": "decoded_text_lines",
    "byte_identical": false,
    "bytes_file1": 21,
    "bytes_file2": 20,
    "encoding_file1": "utf-8",
    "encoding_file2": "utf-8",
    "encoding_confidence_file1": 1,
    "encoding_confidence_file2": 1,
    "sha256_file1": "66b132726d57d857c416bf212c2ac4758f8088ffd9144b01fca3f412dd0e163a",
    "sha256_file2": "245ea69b327e3ad2ea5f90573f1a6357e076642171ad33720bd183fd7aed18f9",
    "similarity_available": true,
    "mode": "full",
    "max_bytes": 1048576,
    "meta": {
        "command": "compareFiles",
        "command_maturity": {
            "stage": "alpha",
            "label": "Alpha",
            "sequence": 2,
            "public_executable": true,
            "stability": "interface_may_change",
            "summary": "Available for real use and feedback while its interface and behavior can still evolve.",
            "promotion_review_required": false,
            "assessment_scope": "development_checkout"
        },
        "duration_ms": 6.208,
        "schema_version": 1
    }
}
查看 JSON 结果契约
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        },
        "message": {
            "type": "string"
        },
        "error": {
            "type": "string"
        },
        "error_code": {
            "type": "string"
        },
        "remediation": {
            "type": "string"
        },
        "file1": {
            "type": "string"
        },
        "file2": {
            "type": "string"
        },
        "mode": {
            "type": "string",
            "enum": [
                "full",
                "summary",
                "percent"
            ]
        },
        "identical": {
            "type": "boolean"
        },
        "added_lines": {
            "type": "integer"
        },
        "removed_lines": {
            "type": "integer"
        },
        "total_changes": {
            "type": "integer"
        },
        "diff": {
            "type": "string"
        },
        "similarity": {
            "type": "number"
        },
        "lines_file1": {
            "type": "integer"
        },
        "lines_file2": {
            "type": "integer"
        },
        "identical_lines": {
            "type": "integer"
        },
        "changes": {
            "type": "integer"
        },
        "summary": {
            "type": "string"
        },
        "content_type": {
            "type": "string",
            "enum": [
                "text",
                "binary"
            ]
        },
        "comparison_basis": {
            "type": "string"
        },
        "byte_identical": {
            "type": "boolean"
        },
        "bytes_file1": {
            "type": "integer"
        },
        "bytes_file2": {
            "type": "integer"
        },
        "max_bytes": {
            "type": "integer"
        },
        "encoding_file1": {
            "type": [
                "string",
                "null"
            ]
        },
        "encoding_file2": {
            "type": [
                "string",
                "null"
            ]
        },
        "encoding_confidence_file1": {
            "type": [
                "number",
                "null"
            ]
        },
        "encoding_confidence_file2": {
            "type": [
                "number",
                "null"
            ]
        },
        "sha256_file1": {
            "type": "string"
        },
        "sha256_file2": {
            "type": "string"
        },
        "similarity_available": {
            "type": "boolean"
        },
        "meta": {
            "type": "object",
            "required": [
                "command",
                "command_maturity",
                "duration_ms",
                "schema_version"
            ],
            "properties": {
                "command": {
                    "type": "string"
                },
                "command_maturity": {
                    "type": "object",
                    "required": [
                        "stage",
                        "label",
                        "sequence",
                        "public_executable",
                        "stability",
                        "summary",
                        "promotion_review_required",
                        "assessment_scope"
                    ],
                    "properties": {
                        "stage": {
                            "type": "string"
                        },
                        "label": {
                            "type": "string"
                        },
                        "sequence": {
                            "type": "integer"
                        },
                        "public_executable": {
                            "type": "boolean"
                        },
                        "stability": {
                            "type": "string"
                        },
                        "summary": {
                            "type": "string"
                        },
                        "promotion_review_required": {
                            "type": "boolean"
                        },
                        "assessment_scope": {
                            "type": "string"
                        },
                        "note": {
                            "type": "string"
                        },
                        "review": {
                            "type": "object",
                            "required": [
                                "reviewed_on",
                                "rationale",
                                "evidence"
                            ],
                            "properties": {
                                "reviewed_on": {
                                    "type": "string",
                                    "format": "date"
                                },
                                "rationale": {
                                    "type": "string"
                                },
                                "evidence": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "replacement": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": true
                },
                "duration_ms": {
                    "type": "number"
                },
                "schema_version": {
                    "type": "integer"
                }
            },
            "additionalProperties": true
        }
    },
    "additionalProperties": true,
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "required": [
        "message",
        "meta",
        "success"
    ]
}

错误与限制

公开契约要求失败时返回 success=false 和具有描述性的 message。此目录尚未为每个命令声明专门的错误分类;请检查结果,不要推断不存在的错误码。

QZX 仍处于 alpha 阶段。可选依赖、权限和主机能力可能影响结果。

证据流程:已捕获并通过摘要验证。

证据与来源

文档渠道
开发文档 0.2.2.0.9 · main · sha256:cfba936e39931c286ca23add0ae546693db17d8b316e7cbc3891d26642d9b7e8
可用性
0.2.2.0.9 或更早

继续探索

这些命令同样属于 开发 类别。对比它们,选择最适合解决任务的操作。

浏览所有 QZX 命令