Системное администрирование

Как добавить пункт в контекстное меню Windows?

Меня интересует следующее:
Добавить в контекстное меню ко всем папкам внизу кнопки удаления следующую команду под названием "RMDIR"
rmdir \q\s %1
Где %1 - будет удаляться полностью выделенная папка. Если выделить несколько папок - значит они тоже будут удаляться.
Командную строку закрывать после выполнения команды.
Нужно узнать в какую ветку реестра вставить команду, какое именно значение.
Важно чтобы папки после удаления тоже удалялись, а не были пустыми.
Odinokiy Volk
Odinokiy Volk
5 714
Никогда с таким не работал, но команду исправить можно.
cmd.exe /c "pushd "%V" && rmdir /q/s "%V"" (используем ключ /c вместо /k, чтобы командная строка закрывалась, после своего выполнения)
Бердибек Халел
Бердибек Халел
5 309
Лучший ответ
Odinokiy Volk Команда действительно успешно выполнилась, однако данная команда лишь на опустошение файлов внутри папки. А мне надо помимо этого ещё и саму выделенную папку (папки) удалять.
. . ахахахаха ! я тебя сделал ! ахахах.
cmd.exe /c "pushd "%V" && popd && rmdir /q/s "%V""

Если что гугл, но как я понял pushd переходит как cd в каталог папки внутрь.
Вот походу и не давала удалять.
А popd чудным образом переходит выше, скорее это в ком строке работает.
Как pushd C:\Program Files\Google.
А popd C:\Program Files\ а потом rd del и путь C:\Porg files\Google.
Это слишком сложно для тебя, поищи вариант попроще, например просто не включай компьютер
не надо так не надо, пфф :)))
Odinokiy Volk Спасибо, но мне нужно исправить команду которая была неправильно составлена. Ветки реестра мне уже известны.
Создай батник с кодом
Создай ярлык от батника и сунь куда тебе надо
RS
Rahmatullo Safarov
13 459
Для добавления новой команды в контекстное меню папок в Windows, вам нужно будет изменить реестр. Однако, я хочу подчеркнуть, что внесение изменений в реестр может быть рискованным и может повлиять на работоспособность системы. Пожалуйста, перед продолжением убедитесь, что вы понимаете, что делаете, и создайте резервную копию данных или системы.

Вот как вы можете добавить указанную вами команду "RMDIR" в контекстное меню папок:

Откройте редактор реестра, нажав Win + R, введите "regedit" и нажмите Enter.

Перейдите к следующему пути:
HKEY_CLASSES_ROOT\Directory\shell

Создайте новую подпапку с именем "RMDIR" (или любым другим желаемым именем).

Внутри этой новой подпапки создайте новую строковую запись с именем "MUIVerb" и установите ей значение "RMDIR" (или любое другое имя, которое вы хотите видеть в контекстном меню).

Создайте еще одну строковую запись с именем "Icon" и установите ей путь к иконке, если это необходимо (например, "C:\Path\To\Your\Icon.ico").

Создайте подпапку внутри "RMDIR" с именем "command".

Внутри этой подпапки "command" создайте строковую запись с именем по умолчанию и установите ей значение команды, которую вы хотите выполнить. В вашем случае это будет:


cmd.exe /s /c "rmdir /q /s \"%1\""

Закройте редактор реестра.

После этого, при щелчке правой кнопкой мыши на папке, вы должны увидеть новый пункт меню "RMDIR", который будет удалять выбранную папку и её содержимое.

Пожалуйста, будьте осторожны при работе с реестром и убедитесь, что вы выполняете все шаги верно. Если вы не уверены в своих действиях, лучше проконсультируйтесь с более опытными пользователями или специалистами.
Сергей Тырин
Сергей Тырин
7 877
Сергей Тырин Попробуйте еще следующий метод:
Откройте блокнот или любой другой текстовый редактор.
Вставьте следующий текст:
@echo off
setlocal
set "folder=%~1"
rmdir /s /q "%folder%"
exit /b
Сохраните файл с расширением .bat, например, "DeleteFolder.bat".
Теперь, используя созданный вами .bat файл, обратитесь к папке для удаления. Проверьте, работает ли он должным образом. Вы должны убедиться, что этот файл удаляет папку и все её содержимое, и не выдает ошибок.

Если файл работает корректно, вернитесь к редактору реестра и вместо длинной команды попробуйте указать следующее:

cmd.exe /s /c "C:\путь\к\вашему\файлу\DeleteFolder.bat \"%1\""

Замените C:\путь\к\вашему\файлу\DeleteFolder.bat на фактический путь к вашему файлу "DeleteFolder.bat".
Odinokiy Volk И да, GPT-4 я пробовал ещё до создания данного вопроса, т.к он мне тоже ничем не помог.
Я совсем не понял что ты хочешь какой то бред.

А что тебе мешает кнопкой Delete удалять папки ? че прикалываешься ?
Ты собираешься удалять файлы через кнопку мыши ?.

Ты че конкретно хочешь.
Я знаю что справлюсь с твоей проблемой, но задачу твою не понял.
В комменты отпишись ночью и завтра утром проверю.
Или можешь тг свое оставить.

С ответа выше
cmd.exe /c "pushd "%V" && rmdir /q/s "%V""

Но если тебе это помогло забей можешь не отвечать мне.
Odinokiy Volk Мне надо чтобы данная команда не только удаляла файлы внутри папки, но и ещё саму выделенную папку (папки) удалять.
Команда теперь составлена корректно, но не полностью возвела все ожидания.
Odinokiy Volk Код ты сам скопипастил у пользователя Kotakasi.
Мне надо чтобы одновременно выполнялось удаление не только файлов внутри папки, но и полностью вся папка удалялась.
В 2 кода невозможно уложится. Нужна одна команда. И я не вижу переменных с твоей стороны. Ты хоть сам когда копировал код понял его? Если ты не разбираешься в этом, я лучше подожду пользователя Kotakasi, который разбирается в этом в отличии тебя. Я не планирую третий раз читать "Вот эта бредятина, ничего не понял". Не понимай дальше. Твои проблемы. Меня другой человек с первого раза понял.
 Windows Registry Editor Version 5.00

[HKCR\Directory\Shell\rmdir]
@="RMDIR"

[HKCR\Directory\Shell\rmdir\Command]
@="cmd /c rmdir \"%1\" /s /q"
это скопируй в reg-файл и запусти
Odinokiy Volk Ничего не появилось
Прямо над кнопкой удалить вряд ли получиться.



1. В Редакторе реестра открыть соответствующую ветку.

Поскольку в нашем примере пункт должен появиться в контекстном меню файлов, открываем ветку
\HKEY_CLASSES_ROOT\Folder\shell

2. Создать в ней новый раздел.

С этой целью в проводнике Редактора необходимо щелкнуть правой кнопкой мышки по папке "shell", и в открывшемся списке выбрать "Создать" - "Раздел" (см. изображение). Назвать этот раздел можно как угодно, используя латинские буквы и цифры. Я назвал "Open to Firefox".



3. В новом разделе создать строковый параметр с названием MUIVerb (он определяет название пункта контекстного меню).

Для этого в проводнике Редактора реестра нужно щелкнуть правой кнопкой мышки по созданному разделу (который я назвал "Open to Firefox") и в появившемся списке выбрать "Создать" ⇒ "Строковый параметр" (см. изображение).



Новый строковый параметр появится в правой части Редактора реестра. Нужно присвоить ему название MUIVerb, после чего дважды щелкнуть по нему левой кнопкой мышки.

Затем в нижнем поле открывшегося окна указать словосочетание, которое будет отображаться в контекстном меню, и нажать кнопку ОК. Я написал "Открыть в Firefox" (см. изображение).



Кроме параметра MUIVerb, в созданный раздел аналогичным образом можно добавить еще несколько параметров (не обязательно). В частности:

• строковый параметр с названием Position. Он определяет, в каком месте контекстного меню будет находиться пункт. Ему можно присвоить одно из двух значений: Top (вверху) или Bottom (внизу). Если этот параметр не создавать, пункт будет отображаться в середине контекстного меню.

Я создал параметр Position и присвоил ему значение Bottom.

• строковый параметр с названием Icon. Он определяет, какая иконка будет отображаться в контекстном меню слева от пункта.

В значении этого параметра нужно указать путь к файлу иконки формата .ICO. Можно также указать путь к какой-нибудь программе. В таком случае будет использоваться иконка этой программы.

Поскольку создаваемый мною пункт должен открывать файл в браузере Firefox, я указал в нем путь к файлу этого браузера.

Ссылка на источник тута .

Здесь написано о добавлении в конт. меню. А вот как удалить конкретную папку, не знаю. Но мне кается что реестре где папка Command можно этому файлу (по умолчанию) здадать rmdir \q\s %1. Возможно, поможет. Ну я бы попробовал так.
UK
Ulik Kerimaliev
202
Odinokiy Volk HKEY_CLASSES_ROOT/*/shell - такой ветки не существует.
Смысл отвечать если не знаешь ответа?
Odinokiy Volk Увы, уже пробовал. Не помогает.
Я это делал через реестр, уже не помню как, но это не сильно муторно