Windows: Як додати дії пакетного сценарію до меню клацання правою кнопкою миші


18

У мене є кілька програм, які створюють темп-файли або резервні файли або подібні файли, які не важливі. Наприклад, GVim для Windows за замовчуванням створює файл резервної копії в filename.txt~.

Мені іноді потрібно очистити каталог і видалити всі ці файли. Я створив для цього простий .bat файл. Однак громіздко потрібно запускати CMD, переходити до папки, запускати скрипт. Тим більше, що це сценарій, який я хотів би часто запускати у різних папках. І я не хочу копіювати скрипт у кілька папок, оскільки це був би кошмар технічного обслуговування.

Отже, я думав, що найкращим рішенням буде додати пункт меню «Клацання правою кнопкою миші», який дозволяє мені запустити сценарій. Так що я можу правою кнопкою миші натиснути папку в Провіднику та натиснути Очистити, а потім запустити мій сценарій у цій папці.

Отже, моє питання: Як додати дію меню правою кнопкою миші, що виконує спеціальний пакетний скрипт?

Відповіді:


18

Я спробував на Windows XP SP3 з цим ключем .reg. На даний момент у вас немає Windows 7, щоб перевірити її належним чином, але вона повинна бути майже однаковою.

  1. Відкрийте блокнот і вставте код знизу.
  2. Редагуйте відповідно до ваших потреб.
  3. Зберегти як MyScript1.reg
  4. Двічі клацніть, щоб імпортувати в реєстр.
  5. Перевірка правою кнопкою миші на будь-якій директорії в Провіднику
Версія редактора реєстру Windows 5.00

[HKEY_CLASSES_ROOT \ Каталог \ оболонка \ MyScript1]
@ = "Виконати MyScript1"

[HKEY_CLASSES_ROOT \ Каталог \ shell \ MyScript1 \ команда]
@ = "\" C: \\ MyScriptsDirectory \\ MyScript1Directory \\ MyScript1.bat \ "\"% 1 \ ""

4
Я трохи відредагував вашу відповідь. "Редактор реєстру Windows версії 5.00" є обов'язковим "заголовком" для файлів .reg. Інакше Windows відмовиться вводити вміст у реєстр.
екстремко

+1 для вказівки на це. Я повністю забув про це, коли код c / p.
Роберт Шмідт

1
Я спробував це. Тепер я можу клацнути правою кнопкою миші безпосередньо папку, але це не працює, якщо я клацніть правою кнопкою миші всередині папки. Що насправді те, чого я хочу. Як це зробити?
ervingsb

1
Це питання інше, ніж "Так що я можу правою кнопкою миші натиснути папку в Провіднику і натиснути Очистити, а потім запустити мій скрипт у цій папці".
Роберт Шмідт

Так, саме тому я уточнив це. Вибачте за неточність. Я насправді вважаю це правою кнопкою миші на папці. Це просто не значок папки, а всередині папки.
ervingsb

19

Насправді нинішня відповідь не застаріла. Я спробував саме те саме в Windows 10 і зміг додати Run Batch scriptдо контекстного меню всіх папок в Windows.

Це вміст мого пакетного сценарію (не працюватиме з контурами UNC ):

@ECHO OFF
ECHO% ~ n0 викликали з такими аргументами:
SET аргументи =% *
ЯКЩО НЕ визначили аргументи GOTO END
ECHO% *
: END
ПАУЗА

Зміни реєстру, які я вніс, можна повторити з цим файлом REG:

Версія редактора реєстру Windows 5.00

[HKEY_CLASSES_ROOT \ Каталог \ оболонка \ Запустити пакетний сценарій]
@ = "І запустити пакетний сценарій"

[HKEY_CLASSES_ROOT \ Каталог \ оболонка \ Запустити пакетний сценарій \ команда]
@ = "\" H: \\ BATCH_FILE_PATH \\ context-batch.bat \ "\"% 1 \ ""

Це лише додає пункт контекстного меню для всіх каталогів / папок в Windows. Якщо ви хочете, щоб він відображався для кожного файлу замість цього, ви можете використовувати це:

Версія редактора реєстру Windows 5.00

[HKEY_CLASSES_ROOT \ * \ shell \ Запуск сценарію]
@ = "Виконати і скрипт"

[HKEY_CLASSES_ROOT \ * \ shell \ Запуск сценарію \ команда]
@ = "\" H: \\ BATCH_FILE_PATH \\ context-batch.bat \ "\"% 1 \ ""

Крім того, ви можете додати пакетний скрипт до списку Send Toелементів, створивши ярлик до пакетного сценарію та розмістивши його під %APPDATA%\Microsoft\Windows\SendTo(або введіть shell:sendtoв адресний рядок)

Якщо ви хочете, щоб ваш сценарій відображався в контекстному меню, яке з’являється при натисканні правою кнопкою миші на порожній простір у каталозі (фон каталогу?), Ви можете використовувати такий файл REG:

Версія редактора реєстру Windows 5.00

[HKEY_CLASSES_ROOT \ Каталог \ Фон \ Фон \ оболонка \ Запуск пакетного сценарію]
@ = "І запустити пакетний сценарій"
"Icon" = "% SystemRoot% \\ System32 \\ shell32.dll, 71"

[HKEY_CLASSES_ROOT \ Каталог \ Фон \ Фон \ оболонка \ Запуск пакетного сценарію \ команда]
@ = "H: \\ BATCH_FILE_PATH \\ context-batch.bat \"% V \ ""

Вам не потрібна "Icon"="%SystemRoot%\\System32\\shell32.dll,71"лінія. Він просто додає піктограму до вашого контекстного меню, яка виглядає приблизно так:

вікно контекстного меню


Спасибі! До речі, чи знаєте ви, як показувати це контекстне меню, коли я клацну правою кнопкою миші порожній простір поточної папки (не лише тоді, коли натискаю саму папку)?
Том Бріто,

@TomBrito Перегляньте останню редакцію
Виняк

@Tom Бріту: Зміна порожнього простору контекстного меню , здається, відповів тут: stackoverflow.com/questions/4902041 / ...
kreemoweet

@kreemoweet Дякую за посилання! Однак я дізнався про це, проаналізувавши редактор контекстного меню .
Виняк

@kreemoweet Я змінив рядок шляху для Directory\Backgroundвключення %V, який передав би поточний каталог сценарію. Однак я не дуже впевнений, що це означає. %Wздається, працює так само добре.
Виняк

7

Я б рекомендував редактор програм за замовчуванням для цього завдання. Це одночасно більш зручно та зручно, ніж редагування реєстру безпосередньо.

Виберіть контекстне меню введіть тут опис зображення

Виберіть розширення, яке потрібно змінити. введіть тут опис зображення

Виберіть Додати ... введіть тут опис зображення

Дайте вашій команді заголовок, перейдіть до пакетного файлу та необов'язково виберіть піктограму, яка буде представляти вашу команду. введіть тут опис зображення

Збережіть контекстне меню в реєстрі, і ви готові йти.


Я хотів би запустити пакетну папку, а не тип файлу. Схоже, це не допомагає ...
Том Бріто,

Це допомогло мені, дякую за обмін.
Даніель Каплан

Приємна програма. Спасибі.
Лорі Стерн

0

Альтернативним рішенням, яке я використовую в Windows 10, є додавання скрипту до однієї з папок у змінній шляху, а потім, коли ви знаходитесь в досліднику, використовуйте послідовність:

  • ctrl + L - для початку запису на панелі пошуку

  • введіть: cmd, а потім натисніть Enter - щоб запустити cmd у поточному каталозі

  • запустіть свій сценарій, ввівши його ім'я файлу


0

@Vinayak,

Якщо ви використовуєте опцію "надіслати", вам, ймовірно, потрібно буде додати рядок cd /d %1до початку командної партії, щоб вона проходила під цільовим контуром.

мій поточний пакетний файл виглядає приблизно так:

@echo off
cd /d %1    
del *.txt
pause

Дякуємо за допомогу, мені трапилося натрапити на це через Google у потрібний час :)


Це справді коментар, а не відповідь на початкове запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією - ви завжди можете коментувати свої власні публікації, і як тільки у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію . Будь ласка, прочитайте Чому мені потрібно коментувати 50 репутацій? Що я можу зробити замість цього?
DavidPostill

@DavidPostill добре, що він не мав свого власного допису в цій темі, щоб коментувати його перед тим, як опублікувати свою відповідь. нічого імовірно.
барлоп

@barlop Відповіді не замінює коментарі, як ви добре знаєте. Одна з альтернатив - запропонувати редагувати іншу відповідь ... але це, швидше за все, буде відхилено.
DavidPostill

@DavidPostill моя думка лише в тому, що тоді у нього немає можливості. і ви не дуже зрозуміли цей факт у своєму первинному коментарі. Насправді ваш оригінальний коментар наводить на думку про те, що у нього є деякі варіанти, але він не має.
барлоп

@barlop Ага. ДОБРЕ. Я подумаю про щось краще формулювання ...
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.