Windows 资源管理器-从上下文菜单中比较两个文件的区别?

Windows 资源管理器-从上下文菜单中比较两个文件的区别?

有没有办法从 Windows 资源管理器的上下文菜单中比较两个选定的文件的差异?

答案1

听起来你需要差异文本

此 shell 扩展 (diff-ext) 可启动同一目录中 2 个或 3 个文件(取决于工具)的文件比较工具,或“保存”文件以供以后比较。它充当比较工具的外部最近使用 (MRU) 文件列表。

我正在使用它KDiff3,但页面上还有许多其他可与其一起使用的差异工具。

替代文本

答案2

这是我的解决方案,添加右键单击上下文菜单项来运行自定义命令(如调用 Meld)并比较两个文件。

背景 简单的上下文菜单条目可以轻松地添加到 Windows 注册表(regedit)中:手动或通过创建 .reg 文件(参见下面的示例)。

问题是该命令将针对您选择的每个文件运行。有三种解决方案可以解决这个问题:

  1. 使用 Shell 扩展(复杂)
  2. 确保您的应用程序能够捕获不同的调用(复杂)
  3. 使用singleinstance.exe上下文菜单处理程序(简单)。此程序为您执行选项 2。它从调用的不同时间收集参数,然后将它们传递给您想要的命令。超时选项可用于帮助收集要收集的调用。单击链接获取更多信息。

步骤1从以下位置下载 singleinstance.exe上下文菜单处理程序(并感谢作者,我和他并无关系)

第 2 步(文件和文件夹比较):创建一个扩展名为“.reg”的文件,内容如下(以带有图标的 Meld 为例):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]
@="Diff it!"
"Icon"="C:\\Program Files (x86)\\Meld\\Meld.exe"

[HKEY_CLASSES_ROOT\*\shell\DiffIt_Files\command]
@="\"c:\\Bin\\singleinstance.exe\" \"%1\" \"C:\\Program Files (x86)\\Meld\\Meld.exe\" $files --si-timeout 400"
   
[HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 
@="Diff It!" 
"Icon"="C:\\Program Files (x86)\\Meld\\Meld.exe"

[HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders\command]    
@="\"c:\\Bin\\singleinstance.exe\" \"%1\" \"C:\\Program Files (x86)\\Meld\\Meld.exe\" $files --si-timeout 400"

*reg 文件为所有文件 ( ) 和文件夹 ( )创建了一个名为“Diff It!”的上下文菜单项。如果您不想要图标,可以删除Folder包含 的行。Icon

调整程序的路径singleinstance.exe和运行的命令(此处C:\Program Files (x86)\Meld\Meld.exe。请注意退格键和引号的转义

步骤3运行该.reg文件。如果您是管理员,双击它可能会起作用。否则,在您的文件夹中打开管理员命令提示符(在资源管理器中:文件>打开命令>以管理员身份打开命令。或Alt-F-M-A)。只需键入文件的名称.reg即可将其添加到注册表。

就是这样。

(卸载)您可以手动删除注册表中的项,也可以创建.reg包含以下内容的文件:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

选择使用软件添加-编辑-删除上下文菜单条目,如 ContextEdit(但无法轻松添加图标)。在这种情况下,您不需要转义斜杠和引号,因此命令将如下所示:

"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400

答案3

无可比拟合并也可以这样做,如果你启用Shell 集成在安装过程中。

答案4

您可以使用自定义命令创建一个批处理文件,然后在 中添加它的快捷方式shell:sendto。另外,这还可以避免更改注册表。

灵感来自这个 Stack Overflow 上的答案, 例如:

1a. 创建一个新文件:

    @echo off
    setlocal
    start "Compare files" /B /MIN "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe" /diff %2 %1 First:'%2' Second:'%1'

1b. 更改启动命令例如,根据需要更改比较工具的路径和后续命令行参数。

  1. 将批处理文件保存到永久目录,例如C:\Users\You\Compare With My Tool.cmd

  2. Compare With My Tool.cmd在 中创建文件的快捷方式shell:sendto。快捷方式的名称就是您在“发送到”上下文菜单中看到的名称。在 shell 中显示的图标是快捷方式的图标,您可以使用文件属性菜单更改它。

  3. 选择要比较的两个文件,右键单击,然后选择发送到 > 与我的工具比较(或您命名的快捷方式)

相关内容