将“删除空文件夹”添加到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_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脚本?

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

第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发现的解决方案 。