На самом деле, текущий ответ не устарел. Я попробовал то же самое в 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"
. Он просто добавляет значок в ваше контекстное меню, которое выглядит следующим образом: