我想在上下文菜单中添加这个漂亮的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"