Na verdade, a resposta atual não está desatualizada. Eu tentei exatamente a mesma coisa no Windows 10 e foi capaz de adicionar Run Batch script
ao menu de contexto de todas as pastas no Windows.
Este é o conteúdo do meu script em lote (não funciona com caminhos UNC ):
@ECHO OFF
ECHO %~n0 was called with the following arguments:
SET args=%*
IF NOT DEFINED args GOTO END
ECHO %*
:END
PAUSE
As alterações do registro que eu fiz podem ser replicadas com este arquivo 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\""
Isso adiciona apenas um item de menu de contexto para todos os diretórios / pastas no Windows. Se você quiser mostrar para cada arquivo, você pode usar isto:
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\""
Como alternativa, você pode adicionar seu script em lote à lista Send To
item criando um atalho para o script em lote e colocando-o em %APPDATA%\Microsoft\Windows\SendTo
(ou digite shell:sendto
na barra de endereço)
Se você quiser que seu script apareça no menu de contexto que aparece quando você clica com o botão direito no espaço vazio dentro de um diretório (diretório de fundo?), você pode usar o seguinte arquivo 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\""
Você não precisa da linha "Icon"="%SystemRoot%\System32\shell32.dll,71"
. Ele simplesmente adiciona um ícone ao seu menu de contexto que se parece com isso: