【问题标题】:Call custom archive program through Windows Explorer context menue通过 Windows 资源管理器上下文菜单调用自定义存档程序
【发布时间】:2018-11-17 13:56:04
【问题描述】:

我在 Windows 上安装了一个 Linux SMB。 Linux SMB 服务器配置为支持 区分大小写的文件名。 Linux SMB 共享包含带有一些文件的源文件,例如: $ ls dir test.txt Test.txt TesT.txt Windows 文件资源管理器正确处理这些文件。当我通过 Ctr-c 复制它们或移动它们时,它们会按预期处理。

我现在想归档 Windows 文件资源管理器中的一些目录,方法是右键单击并在上下文菜单中选择归档操作. sourcetree 很大,我不想通过 cmdline 导航。

所以我发现:

  • WinRar 仅在选择“添加到存档...”然后选择zip 格式时支持存档中区分大小写的文件名。对于Rar 格式,它会抱怨相同的小写名称。
  • 7zip 根本不支持任何格式的区分大小写的文件名。它总能产生共鸣。

因为我习惯了tar.gz,所以我宁愿创建 tar.gz beeing。所以我有这些问题:

  • 是否有存档程序在 Windows 文件资源管理器中注册上下文菜单操作,以创建 tar.gz|tar.bz2 并支持区分大小写的文件名?
  • 是否有可能注册我自己的 Windows 文件资源管理器 插件,可能编写为 JScript,这使我可以调用例如 cygwintar -czvf dirname.tar.gz dirname 通过上下文菜单获取文件/目录名作为参数?如果编写/注册这样的插件不太困难,那将是首选的解决方案。

【问题讨论】:

    标签: windows explorer


    【解决方案1】:

    我使用注册表添加了上下文菜单:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\Directory\shell\ArchiveTarGz]
    @="[> Archive tar.gz "
    
    [HKEY_CLASSES_ROOT\Directory\shell\ArchiveTarGz\command]
    @="\"C:\\cygwin64\\bin\\mintty.exe\" \"-i\" \"/Cygwin-Terminal.ico\" \"/bin/bash\" \"--login\" \"-i\" \"-c\" \"sh /cygdrive/c/ctxmenue.sh '%1' gz\""
    
    [HKEY_CLASSES_ROOT\Directory\shell\ArchiveTarBz2]
    @="[> Archive tar.bz2 "
    
    [HKEY_CLASSES_ROOT\Directory\shell\ArchiveTarBz2\command]
    @="\"C:\\cygwin64\\bin\\mintty.exe\" \"-i\" \"/Cygwin-Terminal.ico\" \"/bin/bash\" \"--login\" \"-i\" \"-c\" \"sh /cygdrive/c/ctxmenue.sh '%1' bz2\""
    

    将以上内容保存在r.reg 中并执行。同时创建/cygdrive/c/ctxmenue.sh:

    #!/bin/sh
    
    f=$(cygpath -u "${1//\\/\\\\}")
    d=$(dirname "$f")
    b=$(basename "$f")
    
    case ${2} in
        gz)  ( cd "$d"; tar -cvzf "${b}.tar.${2}" "${b}" );;
        bz2) ( cd "$d"; tar -cvjf "${b}.tar.${2}" "${b}" );;
        *)   ( cd "$d"; tar -cvf "${b}.tar" "${b}" );;
    esac
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-10
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多