【问题标题】:Add 'Delete empty folders' to Windows context menu将“删除空文件夹”添加到 Windows 上下文菜单
【发布时间】:2016-03-05 06:26:57
【问题描述】:

我想将此nice shell script 添加到上下文菜单中,它会自动删除运行它的文件夹下的所有空文件夹和子文件夹:

for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"

要将这样的项目添加到(目录)上下文菜单,我应该运行一个扩展名为 reg 的文件,其内容类似于

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders]

[HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders\Command]
@=for /f "usebackq delims=" %%d in (`"dir %1 /ad/b/s | sort /R"`) do rd "%%d"

但这一个不起作用。应该如何修复它才能正确运行单行 shell 脚本?

【问题讨论】:

  • 将代码放入.bat文件中,将bat文件和参数标识符放入reg键中。
  • @Alex:应该可以通过在命令行的其余部分调用cmd /c 来实现。
  • @Joey 使用@="cmd /c for /f \"usebackq delims=\" %%d in (`\"dir %1 /ad/b/s | sort /R\"`) do rd \"%%d\"" 我设法删除了某些位置的空文件夹,但不是所有位置,您能详细说明一下吗?
  • @Joey 看起来您还必须将参数 %1 括在双引号中,即 \"%1\"

标签: windows contextmenu directory


【解决方案1】:

E ia ora na tatou

这是另一种方式:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\MenuDelZem]
"MUIVerb"="Supprimer les dossiers vides"
"Icon"="imageres.dll,-89"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuCmd"

[HKEY_CLASSES_ROOT\Directory\background\shell\MenuDelZem]
"MUIVerb"="Supprimer les dossiers vides"
"Icon"="imageres.dll,-89"
"ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuCmd"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd\shell\open]
"MUIVerb"="Supprimez-les ?"
"Icon"="imageres.dll,-89"

[HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuCmd\shell\open\command]
@="cmd /c ROBOCOPY . .  /S /MOVE"

【讨论】:

    【解决方案2】:

    感谢乔伊的评论,我能够找到以下解决方案。

    第 1 步:创建一个扩展名为 reg 的文件(例如 add_delete_empty_folders_to_context_menu.reg)并在其中放入以下行:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders]
    
    [HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders\Command]
    @="cmd /c for /f \"usebackq delims=\" %%d in (`\"dir \"%1\" /ad/b/s | sort /R\"`) do rd \"%%d\""
    

    第 2 步:双击您的 reg 文件并提供所有需要的确认。

    现在您的上下文菜单中有一个方便的Delete empty folders 命令,当您右键单击目录时会弹出。这适用于 Windows 7 和 Windows 10。

    避免滥用此功能,有些软件需要空文件夹才能正常工作。

    跟进

    如果您遇到问题(如 Enora,见下文),您可以尝试使用 reg 文件中的以下行来代替原来的行:

    @="cmd.exe /K for /f \"usebackq delims=\" %%d in (`\"dir \"%V\" /ad/b/s | sort /R\"`) do rd \"%%~d\""
    

    其实我不知道这个版本是不是更健壮,我这里只报告一下 Enora 为她的案例找到的solution

    【讨论】:

    • 这很好用。您是否还可以在上下文菜单中包含在此选项中添加某种图标的版本?
    • @TMRW 对不起,这超出了我的知识范围。也许其他人可以为此提供帮助。
    • Np。我想我可以自己做一些研究。
    • @TMRW 如果您在此处发布有关如何添加图标的解决方案,我将很高兴使用它并对其进行投票。
    • 我设法让上下文菜单工作。 stackoverflow.com/questions/34659731/…
    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多