我想将此 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"
但是这个不行。应该如何修复才能正确运行 one liner shell 脚本?
最佳答案
感谢 Joey 的评论,我找到了以下解决方案。
第 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
文件并提供所有需要的确认信息。
现在您的上下文菜单中有一个方便的删除空文件夹
命令,当您右键单击一个目录时弹出。这适用于 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\""
我其实不知道这个版本是否更健壮,我只是在这里报告solution Enora 为她的案子找到的。
关于windows - 将 'Delete empty folders' 添加到 Windows 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34018590/