我想添加到上下文菜单这个漂亮的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发现的解决方案 。