分享一个 Directory Opus 查看文件哈希值的脚本

Directory Opus 是一款功能超级强大的文件管理器,而且颜值也很高。它支持多标签,双窗口,自带压缩文件支持,文件预览等等。
前几天要查看文件的哈希值时才发现,这货居然没有自带这个功能。其实它本身的脚本API是支持的,从官网找了好几个分享的脚本,但都不符合需求,而且源码多为 VBScript。
不得已,我自己写了一个,顺便分享给使用 Directory Opus 的用户。

你可以下载这个脚本,进入自定义 Directory Opus 工具栏,导入用户命令,然后拖动“显示哈希值”命令到工具栏或菜单中。

使用的时候,选中一个文件,然后点击“显示哈希值”即可。你还可以复制内容到剪贴板,Copy按钮的下拉菜单也支持复制单个的哈希值。


你也可以手工如下操作:

第一步: 自定义 Directory Opus 工具栏,新建一个用户命令。

此处右键新建一个自定义命令


第二步: 在命令编辑器里,选择一个图标,名称设为“显示哈希值”。命令类型选择“脚本命令”,代码类型选为“JScript”。清空示范代码,粘贴下列代码到编辑框。

DOpus 命令编辑器中粘贴下面的代码
function OnClick(clickData)
{
  if (clickData.func.sourcetab.selected.count == 0)
  {
    var dlg= DOpus.Dlg;
    dlg.message="Please select a file!";
    dlg.Show;
     return;
  }
  else
  {
    for (var eSel = new Enumerator(clickData.func.sourcetab.selected); !eSel.atEnd(); eSel.moveNext())
    {
      if (eSel.item().is_dir)
      {
        var dlg= DOpus.Dlg;
        dlg.message=eSel.item().RealPath +" is fold, not a file!";
        dlg.Show;
      }
      else
      {
        var md5=DOpus.FSUtil.Hash(eSel.item().RealPath,"md5");
        var sha1=DOpus.FSUtil.Hash(eSel.item().RealPath,"sha1");
        var sha256=DOpus.FSUtil.Hash(eSel.item().RealPath,"sha256");
        var dlg= DOpus.Dlg;
        dlg.message=eSel.item().RealPath + "\r\n\r\n\r\n MD5:\t\t" +md5 +"\r\n\r\n SHA-1:\t" +sha1+"\r\n\r\n SHA-256:\t"+sha256;
        dlg.buttons="Copy+Copy Md5+Copy Sha1+Copy Sha256|Close"
        dlg.Show;

        switch(dlg.result)
        {
          case 1:
            DOpus.SetClip(dlg.message);
          break;
          case 2:
            DOpus.SetClip(md5);
          break;
          case 3:
            DOpus.SetClip(sha1)
          break;
          case 4:
            DOpus.SetClip(sha256)
          break;
        }
      }
    }
  }
}

保存后,拖动这个用户自定义命令“显示哈希值”到工具栏或者菜单中。

至于为什么按钮和提示都是英文,那是因为这货的代码编辑器对中文支持不好啊!

4 thoughts to “分享一个 Directory Opus 查看文件哈希值的脚本”

  1. Forbidden
    You don’t have permission to access /https/ on this server.

    从 Rss 以及官网正文均无法阅读 https 全站化,不知道是哪里的问题

回复 ds37 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注