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

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

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

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

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

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

решение1

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

  1. Откройте блокнот и вставьте код, указанный ниже.
  2. Отредактируйте по своему усмотрению.
  3. Сохранить как MyScript1.reg
  4. Дважды щелкните, чтобы импортировать в реестр.
  5. Проверьте, щелкнув правой кнопкой мыши по любому каталогу в Проводнике.
Редактор реестра Windows версии 5.00

[HKEY_CLASSES_ROOT\Directory\shell\MyScript1]
@="Выполнить MyScript1"

[HKEY_CLASSES_ROOT\Directory\shell\MyScript1\command]
@="\"C:\\MyScriptsDirectory\\MyScript1Directory\\MyScript1.bat\" \"%1\""

решение2

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

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

@ЭХО ВЫКЛ
ECHO %~n0 был вызван со следующими аргументами:
SET аргументы=%*
ЕСЛИ НЕ ОПРЕДЕЛЕНО аргументы GOTO END
ЭХО %*
:КОНЕЦ
ПАУЗА

Изменения реестра, которые я сделал, можно повторить с помощью этого REG-файла:

Редактор реестра Windows версии 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Run Batch script]
@="&Запустить пакетный скрипт"

[HKEY_CLASSES_ROOT\Directory\shell\Run Batch script\command]
@="\"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\Directory\Background\shell\Run Batch script]
@="&Запустить пакетный скрипт"
"Иконка"="%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"строка. Она просто добавляет иконку в ваше контекстное меню, которая выглядит так:

контекстное меню иконки windows

решение3

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

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

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

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

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

Сохраните контекстное меню в реестре, и все готово.

решение4

Альтернативное решение, которое я использую в Windows 10, — это добавление скрипта в одну из папок в переменной path, а затем, когда вы находитесь в проводнике, используйте последовательность:

  • ctrl + L - начать писать в строке поиска

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

  • запустите свой скрипт, введя имя его файла

Связанный контент