Windows : Comment ajouter une action de script batch au menu contextuel (clic droit)

J’ai quelques programmes qui créent des fichiers temporaires ou des fichiers de sauvegarde ou des fichiers similaires qui ne sont pas importants.
Par exemple, GVim pour Windows crée par défaut un fichier de sauvegarde sous le nom filename.txt~.

J’ai parfois besoin de nettoyer un répertoire et de supprimer tous ces fichiers. J’ai créé un simple fichier .bat pour cela. Cependant, c’est fastidieux de devoir lancer CMD, naviguer jusqu’au dossier, exécuter le script.
Surtout que c’est un script que je souhaite exécuter souvent sur divers dossiers. Et je ne veux pas copier le script dans plusieurs dossiers, car ce serait un cauchemar de maintenance.

Alors, j’ai pensé que la meilleure solution serait d’ajouter un élément au menu contextuel (clic droit) qui me permette d’exécuter le script. Ainsi, je pourrais faire un clic droit sur un dossier dans l’Explorateur et cliquer sur Nettoyer puis avoir mon script qui s’exécute sur ce dossier.

Ma question est donc : comment ajouter une action au menu contextuel (clic droit) qui exécute un script batch personnalisé ?

En fait, la réponse actuelle n’est pas obsolète. J’ai essayé exactement la même chose sous Windows 10 et j’ai pu ajouter « Run Batch script » au menu contextuel de tous les dossiers sous Windows.

Voici le contenu de mon script batch (ne fonctionne pas avec les chemins UNC) :

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

Les modifications du registre que j’ai effectuées peuvent être reproduites avec ce fichier 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"”

Ceci n’ajoute un élément de menu contextuel que pour tous les répertoires/dossiers dans Windows. Si vous voulez qu’il s’affiche pour chaque fichier, vous pouvez utiliser ceci :

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"”

Sinon, vous pouvez ajouter votre script batch à la liste des éléments « Envoyer vers » en créant un raccourci vers votre script batch et en le plaçant sous %APPDATA%\Microsoft\Windows\SendTo (ou entrez shell:sendto dans la barre d’adresse)

Si vous voulez que votre script apparaisse dans le menu contextuel qui s’affiche lorsque vous faites un clic droit sur l’espace vide à l’intérieur d’un répertoire (fond du répertoire ?), vous pouvez utiliser le fichier REG suivant :

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"”

Vous n’avez pas besoin de la ligne "Icon"="%SystemRoot%\\System32\\shell32.dll,71". Elle ajoute simplement une icône à votre menu contextuel qui ressemble à ceci :