Windows: Как добавить действие пакетного сценария в контекстное меню

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

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

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

Итак, мой вопрос: Как добавить действие меню правой кнопки мыши, которое запускает пользовательский пакетный сценарий?

21
задан pun
09.04.2023 4:33 Количество просмотров материала 2714
Распечатать страницу

4 ответа

Я пробовал на Windows XP SP3 с этим .reg ключ. Не имеют Windows 7 на данный момент, чтобы проверить его должным образом, но это должно быть почти то же самое.

  1. откройте блокнот и вставьте код ниже.
  2. изменить в соответствии с вашими потребностями.
  3. Сохранить как MyScript1.reg
  4. дважды щелкните, чтобы импортировать в реестр.
  5. тест Правой Кнопкой Мыши на любой каталог в Проводнике
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\MyScript1]
@="Execute MyScript1"

[HKEY_CLASSES_ROOT\Directory\shell\MyScript1\command]
@="\"C:\MyScriptsDirectory\MyScript1Directory\MyScript1.bat\" \"%1\""
14
отвечен Robert Schmidt 2023-04-10 12:21

на самом деле текущий ответ не устарел. Я попробовал то же самое на Windows 10 и смог добавить Run Batch script в контекстном меню всех папок в Windows.

это содержимое моего пакетного скрипта (не будет работать с UNC-пути):

@ECHO OFF
ECHO %~n0 was called with the following arguments:
SET args=%*
IF NOT DEFINED args GOTO END
ECHO %*
:END
PAUSE

изменения реестра я сделал могут быть реплицированы с помощью этого файла REG:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Run Batch script]
@="&Run Batch script"

[HKEY_CLASSES_ROOT\Directory\shell\Run Batch script\command]
@="\"H:\BATCH_FILE_PATH\context-batch.bat\" \"%1\""

это только добавляет пункт контекстного меню для всех каталогов/папок в Windows. Если вы хотите, чтобы он показывал для каждого файла вместо этого, вы можете использовать это:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Run script]
@="Run &script"

[HKEY_CLASSES_ROOT\*\shell\Run script\command]
@="\"H:\BATCH_FILE_PATH\context-batch.bat\" \"%1\""

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

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

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Run Batch script]
@="&Run Batch script"
"Icon"="%SystemRoot%\System32\shell32.dll,71"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Run Batch script\command]
@="H:\BATCH_FILE_PATH\context-batch.bat \"%V\""

вам не нужно "Icon"="%SystemRoot%\System32\shell32.dll,71" линии. Он просто добавляет значок в контекстное меню, которое выглядит следующим образом:

context menu icon windows

11
отвечен Vinayak 2023-04-10 14:38

Я бы порекомендовал Редактор Программ По Умолчанию для этой задачи. Это более удобно и, возможно, безопаснее, чем редактирование реестра напрямую.

Выбрать В Контекстном Меню enter image description here

выберите расширение, которое вы хотите изменить. enter image description here

Выбрать Добавить... enter image description here

дать вашей команде название, выберите пакетный файл и дополнительно выбрать значок представь свою команду. enter image description here

сохранить контекстное меню в реестре и вы хорошо идти.

2
отвечен Xtremity 2023-04-10 16:55

@Vinayak,

при использовании опции "отправить", вам, вероятно, потребуется добавить строку cd /d %1 до начала пакетной команды, чтобы она выполнялась по целевому пути.

мой текущий пакетный файл выглядит так:

@echo off
set targetfolder=%1
cd /d %1

del *.txt
pause

не уверен, нужен ли мне там "set targetfolder=%1", но он работает, поэтому я держу его таким образом :)

Спасибо за помощь, я случайно наткнулся на это через google в нужное время:)

0
отвечен Chris 2023-04-10 19:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх