![自定义右键单击菜单选项删除文件夹不起作用](https://linux22.com/image/1598367/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%B3%E9%94%AE%E5%8D%95%E5%87%BB%E8%8F%9C%E5%8D%95%E9%80%89%E9%A1%B9%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我使用 Angular,它生成的项目文件夹非常大,使用常规的文件夹删除方法需要很长时间才能删除,但如果在命令行中使用以下命令删除它,则该文件夹会在几秒钟内消失:rmdir /s /q <folder path>
因此,我在互联网上搜索解决方案,发现有几个方法告诉我要修改注册表。我照做了,但当我右键单击文件夹并选择使用自定义菜单选项(“文件夹快速删除”)删除它时,它并没有删除它。此外,如果我右键单击包含文件和子文件夹的文件夹中的空白区域并选择“文件夹快速删除”,它会删除所有子文件夹和一些不在子文件夹中的文件(即当前根文件夹中的文件)。奇怪的是,如果只是右键单击桌面上的空白区域并选择“文件夹快速删除”,它不仅会删除桌面上的所有文件夹,还会删除一些快捷方式。
我的 .reg 文件有什么问题?
reg 文件添加上下文菜单项
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\Delete_Folder]
@="Folder quick delete"
"Extended"=-
[HKEY_CLASSES_ROOT\Directory\shell\Delete_Folder\command]
@="C:\\windows\\system32\\cmd.exe /c rmdir /s /q %V"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Delete_Folder]
@="Folder quick delete"
"Extended"=-
[HKEY_CLASSES_ROOT\Directory\Background\shell\Delete_Folder\command]
@="C:\\windows\\system32\\cmd.exe /c rmdir /s /q %V"
[HKEY_CLASSES_ROOT\Drive\shell\Delete_Folder]
@="Folder quick delete"
"Extended"=-
[HKEY_CLASSES_ROOT\Drive\shell\Delete_Folder\command]
@="C:\\windows\\system32\\cmd.exe /c rmdir /s /q %V"
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell\Delete_Folder]
@="Folder quick delete"
"Extended"=-
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell\Delete_Folder\command]
@="C:\\windows\\system32\\cmd.exe /c rmdir /s /q %V"
答案1
首先,对于文件名中有空格的文件夹,您需要在目录参数的路径周围加上引号。要添加它们,请转义引号字符,如下面的 shell 命令所示佩斯多:
[HKEY_CLASSES_ROOT*\shell\pestudio\命令]
@="\"C:\program files\pestudio\pestudio.exe\" \"%1\""
第二,参数的标准占位符是%1
,至少需要一个参数。占位符 %v 用于提供默认参数,工作目录,当没有提供时——有点危险。这可能解释了文件和文件夹的意外删除。最好使用 %1,以便上下文菜单适用于您单击的文件夹。
注意:在注册表中使用反斜杠时要格外小心——太多或太少都可能损坏注册表(从悲惨的经历中吸取的教训)。
答案2
我找到了解决方案。对我有用的是:
@="PowerShell -Command \"Remove-Item -LiteralPath '%1' -Force -Recurse\""