将'Delete empty folders'添加到 Windows 上下文菜单



我想在上下文菜单中添加这个漂亮的shell脚本,它可以自动删除运行它的文件夹下的所有空文件夹和子文件夹:

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

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

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTDirectoryshellDelete empty folders]
[HKEY_CLASSES_ROOTDirectoryshellDelete empty foldersCommand]
@=for /f "usebackq delims=" %%d in (`"dir %1 /ad/b/s | sort /R"`) do rd "%%d"

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

感谢Joey的评论,我找到了以下解决方案。

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

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

第二步:双击你的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为她的案例找到的解决方案。

E ia ora na tatou

这里有另一种方式:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTDirectoryshellMenuDelZem]
"MUIVerb"="Supprimer les dossiers vides"
"Icon"="imageres.dll,-89"
"ExtendedSubCommandsKey"="Directory\ContextMenus\MenuCmd"
[HKEY_CLASSES_ROOTDirectorybackgroundshellMenuDelZem]
"MUIVerb"="Supprimer les dossiers vides"
"Icon"="imageres.dll,-89"
"ExtendedSubCommandsKey"="Directory\ContextMenus\MenuCmd"
[HKEY_CLASSES_ROOTDirectoryContextMenusMenuCmdshellopen]
"MUIVerb"="Supprimez-les 🚯"
"Icon"="imageres.dll,-89"
[HKEY_CLASSES_ROOTDirectoryContextMenusMenuCmdshellopencommand]
@="cmd /c ROBOCOPY . .  /S /MOVE"

最新更新