Я думаю, это то, что вы ищете.Я только внес изменения в последнюю строку.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && color 9A && for /r \"%~1\" %%F in (.) do (rd /s /q \"%%~fF\.svn\" \"%%~fF\.settings\" & del \"%%~fF\.buildpath\" \"%%~fF\.project\")2>nul \""
Это решение похоже на то, что описывал Лаф, за исключением того, что он предложил использовать && перед последней командой.Я думаю, что это может создать вам проблемы, потому что следующая команда будет выполнена только в случае успеха RD.Но ваш текущий алгоритм пытается удалить каталог из всех подкаталогов, даже если его там нет.Я использовал &, чтобы следующая команда (DEL) всегда выполнялась независимо от результата RD.Я расширил RD для удаления обоих каталогов, а добавленная команда DEL удаляет оба файла.
Я перенаправил stderr на nul, чтобы вы не видели кучу сообщений об ошибках.Алгоритм очень неэффективен и может генерировать много сообщений об ошибках в зависимости от количества подкаталогов.
Если ваши требования усложняются или вы хотите разработать более эффективный скрипт, возможно, вам лучшесоздать пакетный файл, который выполняет работу, и вызвать пакетный файл из записи реестра.Сложно читать и поддерживать сложный набор команд в одной строке.Escape-последовательности также становятся утомительными в реестре.