
У меня есть несколько программ, которые создают временные файлы или файлы резервных копий или подобные файлы, которые не важны. Например,GVimдля Windows по умолчанию создает файл резервной копии в формате filename.txt~
.
Иногда мне нужно очистить каталог и удалить все эти файлы. Я сделал для этого простой .bat-файл. Однако запускать CMD, переходить в папку, запускать скрипт обременительно. Тем более, что это скрипт, который я хотел бы часто запускать в разных папках. И я не хочу копировать скрипт в несколько папок, так как это будет кошмаром обслуживания.
Итак, я подумал, что лучшим решением было бы добавить пункт меню правой кнопки мыши, который позволит мне запустить скрипт. Так что я могу щелкнуть правой кнопкой мыши по папке в Проводнике и нажать Очистка, а затем запустить мой скрипт в этой папке.
Итак, мой вопрос: как добавить действие в контекстном меню, запускающее пользовательский пакетный скрипт?
решение1
Я попробовал на Windows XP SP3 с этим ключом .reg. Сейчас у меня нет Windows 7, чтобы проверить как следует, но должно быть почти то же самое.
- Откройте блокнот и вставьте код, указанный ниже.
- Отредактируйте по своему усмотрению.
- Сохранить как MyScript1.reg
- Дважды щелкните, чтобы импортировать в реестр.
- Проверьте, щелкнув правой кнопкой мыши по любому каталогу в Проводнике.
Редактор реестра 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"
строка. Она просто добавляет иконку в ваше контекстное меню, которая выглядит так:
решение3
Я бы посоветовалРедактор программ по умолчаниюдля этой задачи. Это и удобнее для пользователя, и, возможно, безопаснее, чем редактирование реестра напрямую.
Выберите расширение, которое вы хотите изменить.
Дайте вашей команде заголовок, перейдите к пакетному файлу и при желании выберите значок, представляющий вашу команду.
Сохраните контекстное меню в реестре, и все готово.
решение4
Альтернативное решение, которое я использую в Windows 10, — это добавление скрипта в одну из папок в переменной path, а затем, когда вы находитесь в проводнике, используйте последовательность:
ctrl + L - начать писать в строке поиска
введите: cmd, затем нажмите Enter - чтобы запустить cmd в текущем каталоге
запустите свой скрипт, введя имя его файла