Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

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

Compute Мыслитель (5730), закрыт 3 месяца назад
Меня интересует следующее:
Добавить в контекстное меню ко всем папкам внизу кнопки удаления следующую команду под названием "RMDIR"
rmdir \q\s %1
Где %1 - будет удаляться полностью выделенная папка. Если выделить несколько папок - значит они тоже будут удаляться.
Командную строку закрывать после выполнения команды.
Нужно узнать в какую ветку реестра вставить команду, какое именно значение.
Важно чтобы папки после удаления тоже удалялись, а не были пустыми.
Дополнен 3 месяца назад
На данный момент у меня команда составлена так:
cmd.exe /s /k "pushd ^"%V^" && rmdir \q\s %V
И она неправильная.
Выдаёт ошибку:
Системе не удается найти указанный путь.
Не удается найти указанный файл.
Не удается найти указанный файл.
Лучший ответ
Kotakasi Мыслитель (6449) 3 месяца назад
Никогда с таким не работал, но команду исправить можно.
cmd.exe /c "pushd "%V" && rmdir /q/s "%V"" (используем ключ /c вместо /k, чтобы командная строка закрывалась, после своего выполнения)
ComputeМыслитель (5730) 3 месяца назад
Команда действительно успешно выполнилась, однако данная команда лишь на опустошение файлов внутри папки. А мне надо помимо этого ещё и саму выделенную папку (папки) удалять.
Михаил АвчиниковМастер (1354) 3 месяца назад
ахахахаха ! я тебя сделал ! ахахах.
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.
Остальные ответы
Профи (642) 3 месяца назад
 Windows Registry Editor Version 5.00

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

[HKCR\Directory\Shell\rmdir\Command]
@="cmd /c rmdir \"%1\" /s /q"
это скопируй в reg-файл и запусти
ComputeМыслитель (5730) 3 месяца назад
Ничего не появилось
Compute, а что вы вообще хотите добиться? достичь какой цели?
Глеб Ученик (177) 3 месяца назад
Прямо над кнопкой удалить вряд ли получиться.



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. Возможно, поможет. Ну я бы попробовал так.
ComputeМыслитель (5730) 3 месяца назад
HKEY_CLASSES_ROOT/*/shell - такой ветки не существует.
Смысл отвечать если не знаешь ответа?
Глеб Ученик (177) Compute, Создать тогда надо.
ComputeМыслитель (5730) 3 месяца назад
Увы, уже пробовал. Не помогает.
Compute, \HKEY_CLASSES_ROOT\Folder\shell Вот эта ветка нужна
аннигиляторная пуська Мудрец (12628) 3 месяца назад
Создай батник с кодом
Создай ярлык от батника и сунь куда тебе надо
ded Moroz Оракул (53157) 3 месяца назад
не надо так не надо, пфф :)))
ComputeМыслитель (5730) 3 месяца назад
Спасибо, но мне нужно исправить команду которая была неправильно составлена. Ветки реестра мне уже известны.
ded Moroz Оракул (53157) Compute, и?
Станислав Малый Мыслитель (7895) 3 месяца назад
Для добавления новой команды в контекстное меню папок в 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", который будет удалять выбранную папку и её содержимое.

Пожалуйста, будьте осторожны при работе с реестром и убедитесь, что вы выполняете все шаги верно. Если вы не уверены в своих действиях, лучше проконсультируйтесь с более опытными пользователями или специалистами.
Станислав МалыйМыслитель (7895) 3 месяца назад
Попробуйте еще следующий метод:
Откройте блокнот или любой другой текстовый редактор.
Вставьте следующий текст:
@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".
Compute Мыслитель (5730) Станислав Малый, Вариант с батником мне не нужен, а команда вообще не работает. cmd.exe /s /c "rmdir /q /s \"%1\""
ComputeМыслитель (5730) 3 месяца назад
И да, GPT-4 я пробовал ещё до создания данного вопроса, т.к он мне тоже ничем не помог.
Редис Александрович Оракул (75153) 3 месяца назад
Это слишком сложно для тебя, поищи вариант попроще, например просто не включай компьютер
Михаил Авчиников Мастер (1354) 3 месяца назад
Я совсем не понял что ты хочешь какой то бред.

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

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

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

Но если тебе это помогло забей можешь не отвечать мне.
ComputeМыслитель (5730) 3 месяца назад
Мне надо чтобы данная команда не только удаляла файлы внутри папки, но и ещё саму выделенную папку (папки) удалять.
Команда теперь составлена корректно, но не полностью возвела все ожидания.
Михаил Авчиников Мастер (1354) Compute, Бредятина ! уверен что с таким легким вопросом справлюсь !. По пунктам 1 действие 2 действие. Объясни я а то не понял. На крайняк можно прописать команду удаления папки ? в чем собственно проблема ? Или записать имена этих папок отдельно ! А потом дать команду удаления пустых папок. del papka/file.exe del papka ? не пойму. А все понять нужно мне чтоб воспроизвести это у себя на компе и отдать тебе готовый код. Да объясни 1 2 3 действия. И дай свой код я сверху свой добавлю или изменю.
ComputeМыслитель (5730) 3 месяца назад
Код ты сам скопипастил у пользователя Kotakasi.
Мне надо чтобы одновременно выполнялось удаление не только файлов внутри папки, но и полностью вся папка удалялась.
В 2 кода невозможно уложится. Нужна одна команда. И я не вижу переменных с твоей стороны. Ты хоть сам когда копировал код понял его? Если ты не разбираешься в этом, я лучше подожду пользователя Kotakasi, который разбирается в этом в отличии тебя. Я не планирую третий раз читать "Вот эта бредятина, ничего не понял". Не понимай дальше. Твои проблемы. Меня другой человек с первого раза понял.
Михаил Авчиников Мастер (1354) Compute, ахахаха задел оскорбил мою честь ахахах ! да это невозможно ! Уверен что решение любой проблемы возможно разными путями ! а не одним. Ты написал в 2 кода нельзя невозможно уложится. 1 команда Я не знаю что ты имеешь ввиду под одной командой ! И ты же хочешь куда то добавить контекст. Я щас как понял тебе нужно удалять файлы и чтоб папки не остались. Я только одну команду знаю. cmd -c выполнить код && cmd -c выполнить код 2 !. А еще же это все можно одним отдельным файлом сделать !. Который твое контекстное меню будет вызывать. Владею так на 3 гуглом cmd и на 3 C++. Не верю что я не справлюсь с задачей. Прикол в том что я не догнал все таки. Тебе нужно просто удалить папку и все файлы в ней ?.
Александр Хоменко Ученик (151) 3 месяца назад
Я это делал через реестр, уже не помню как, но это не сильно муторно
Похожие вопросы