将"删除空文件夹"添加到Windows上下文菜单

mmj*_*mmj 6 windows directory contextmenu

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

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

要将这样的项添加到(目录)上下文菜单,我应该运行一个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"
Run Code Online (Sandbox Code Playgroud)

但是这个不起作用.如何正确运行一个衬管shell脚本?

mmj*_*mmj 7

感谢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\""
Run Code Online (Sandbox Code Playgroud)

第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\""
Run Code Online (Sandbox Code Playgroud)

我实际上不知道这个版本是否更强大,我只是在这里报告Enora为她的案例找到的解决方案.