Ouvrir une Console de commandes depuis le menu contextuel d'un volume, d'un dossier, ou d'un fichier.
On trouve couramment sur le Net une modification du Registre comme le Powertoy Open Command Window Here. Ce tip est également décrit dans ces articles : KB320148, KB816097. Cela consiste à ajouter un item au Menu Contextuel des dossiers permettant de créer une Console ouverte sur le dossier lui-même. Cette disposition évite d'avoir à naviguer manuellement à coups de commandes CD jusqu'au répertoire. Les noms des dossiers peuvent être très longs rendant difficile ce cheminement manuel.
Pour info cette navigation en lignes de commandes sera grandement facilitée par l'utilisation de la complétion (taper la commande, puis appuyer sur la touche TAB). Il existe aussi une possibilité d'affichage des noms courts avec la commande DIR /X.
Il est utile de savoir où se
trouve votre dossier "Envoyer vers", vous pourrez y ajouter facilement des
raccourcis vers des dossiers ou des programmes. L'emplacement est
différent selon que vous utilisez XP, ou Vista/W7.
Faire
WIN+R pour ouvrir la boite Exécuter, puis coller les chemins ci-après (avec XP
sendto est suffisant) :
%userprofile%\sendto
%appdata%\microsoft\windows\sendto
Astuce à retenir : quel que soit le système
(de XP à W7) la commande
shell:sendto permet d'ouvrir rapidement le répertoire Sendto...
Mise en place d'un nouvel item "Console>" au Menu Contextuel des disques et dossiers. La nouveauté est l'ajout de cet item non seulement aux dossiers, mais aussi pour les fichiers. Ceci permet de ne plus avoir à remonter dans l'arborescence, on peut directement ouvrir une Console depuis l'intérieur un dossier dès lors qu'un fichier existe. C'est vraiment très pratique. Cette facilité a été publiée ici: http://www.hotline-pc.org/dosastuces.htm
Mon projet initial était de simplement exposer cette idée, mais il s'est passé quelque chose que j'apprécie beaucoup : différents intervenants sont venus exposer des critiques constructives, lesquelles ont fortement simplifié le fichier REG originel. Tous les détails sont exposés plus loin. Merci encore à tous ces très aimables internautes pour leurs participations.
Par la suite, en lisant un article sur l'ajout d'items comme "Copier vers un dossier" et "Déplacer vers un dossier" dans les menus contextuels, j'ai eu une Révélation. Et le fichier reg qui permet d'ouvrir une Console de commande à partir de n'importe quel objet (disque, dossier, fichier) tient à présent en trois lignes.
Ces vues montrent l'item Console> dans les Menus Contextuels d'un dossier, d'un disque, et d'un fichier.
Cela fonctionne aussi avec les fichiers dont l'extension est
inconnue.
Remarque : en cas d'extension inconnue, l'action Par défaut est
généralement Ouvrir, donnant la possibilité de
choisir un logiciel. Mais, pour certaines extensions, l'action par défaut, c'est
à dire le premier item en gras du Menu Contextuel se trouve à présent remplacé
par notre Console> comme on peut le voir dans la capture
ci-après :
Ne pas s'en étonner donc, et on utilisera "Envoyer
vers", "Ouvrir avec", ou Notepad si on l'a ajouté, selon ce qu'on veut faire
avec le fichier à extension inconnue.
Si on choisit Console>, la Console qui s'ouvre est positionnée sur le répertoire
contenant le fichier qui a servi à l'opération. Ça marche.
Nouveau : une autre version, plus
courte, est présentée plus bas dans l'article...
Fusionner console.reg
au Registre pour ajouter les clés nécessaires.
Contenu du fichier (un fichier.REG est éditable avec Bloc-Notes) :
REGEDIT4 ;FOLDER [HKEY_CLASSES_ROOT\Folder\shell\Console>\Command] @="cmd.exe /k cd %L&color 1F" ;FICHIERS [HKEY_CLASSES_ROOT\*\shell\Console>\Command] @="cmd.exe /k color 1F" |
Pour désinstaller en enlevant automatiquement ces clés, fusionner
desinstaller-console.reg
Pour fusionner un fichier REG au Registre, double-cliquer le fichier REG, ou
faire un clic droit sur le fichier pour afficher son Menu Contextuel, et choisir
Fusionner.
Color 1F n'est pas indispensable, cette commande modifie simplement les
couleurs de la Console; pour faire joli.
/k est un commutateur indiquant à
cmd.exe qu'il faut exécuter l'enchaînement des commandes qui suivent cmd.exe (syntaxe
& ou &&)
Plus d'infos sur cmd.exe :
- en tapant cmd /? dans une
Console
- Démarrer>Exécuter>cmd /k cmd /?
- Aide et Support (WIN+F1) et
utiliser le module de recherche
- Démarrer>Exécuter>hh
ntcmds.chm::/ntcmds.htm
-
Microsoft
Technet
Quelques modifications ont été apportées par rapport à l'idée initiale de
Hotline-pc.
Guillaume Ryder a eu l'amabilité de
montrer qu'il n'était pas nécessaire d'utiliser Start et Pushd pour la partie
"FICHIERS".
De plus avec un fichier il n'est pas nécessaire d'indiquer le chemin du dossier
à cmd.exe avec la variable %L.
Enfin il est inutile de modifier la clé HKLM\SOFTWARE\Classes\*\shell
Référence :
If you write keys to a key under HKCR, the system stores
the information under HKLM\Software\Classes
PUB :
Guillaume est l'auteur de l'excellent
Clavier+
Folder ne m'avait pas paru nécessaire jusqu'à ce que ChrisPra me fasse remarquer que cette clé permettait d'obtenir l'item Command> dans le Menu Contextuel des dossiers spéciaux comme :
Pierre L. m'ayant montré par la suite qu'avec cette modification sur la clé Folder il n'était plus nécessaire de traiter les clés Disk et Directory comme indiqué dans les articles KB320148 et KB816097 vus plus haut, j'ai supprimé les modifications de ces clés.
Suite à ces diverses propositions, dont je remercie chaleureusement les
personnes que j'ai citées, le REG est à présent extrêmement simple et efficace.
Mais ce n'est pas fini, continuer à lire jusqu'à la
fin...
La variable %L (L pour noms Longs) remplit le même rôle que la variable habituellement utilisée %1. La différence est qu'elle ne nécessite pas la précaution d'être encadrée par des guillemets pour les noms comportant des espaces. Elle passe le chemin du dossier à cmd.exe
Avec Vista il faut ajouter /D dans la commande,
qui devient :
cmd.exe /k cd /d %L
Vista et Win7 ont implanté l'item "Ouvrir une fenêtre de commandes ici" dans
leurs menus contextuels étendus (MAJ+Clic droit). Ça marche pour les volumes,
les dossiers, mais pas les fichiers. Cette absence est compensée par la présence
de l'option en faisant MAJ+Clic droit sur le fond d'un dossier, sur le bureau
par exemple. Cela fait appel à la notion de Background d'un dossier et ce n'est
hélas pas utilisable sur XP (avouerai-je que accéder à la Console en cliquant
sur le fond d'une fenêtre était ce que j'avais en tête depuis toujours ?)
La commande utilisée par Wista et Win7 est cmd.exe /s /k pushd "%V"
Cette variable %V n'est pas comprise de XP.
Étonné de voir que Console> ne fonctionnait plus pour les fichiers, je me suis mis à la recherche de la cause de ce dérangement. Ce fut l'occasion d'une jolie chasse au bug, laquelle a révélé la présence d'un troubleur de fête sur mon système. Voici l'histoire :
Si Console> n'apparaît pas dans le Menu Contextuel des fichiers, vous devriez constater d'autres anomalies avec les Menus Contextuels, comme l'absence d'items habituels. Pour avoir rencontré le problème je peux indiquer une méthode de recherche du coupable.
Commencer par sauvegarder la clé HKEY_CLASSES_ROOT\*Procéder ensuite par dichotomie, c'est à dire supprimer drastiquement des sous-branches de cette clé. Lorsque Console> réapparaît dans les Menus Contextuels des fichiers, on approche du but. Refusionner le reg de sauvegarde de la clé, puis supprimer au feeling ce qui pourrait être le responsable de l'anomalie.
En ce qui
me concerne le trouble était causé par HKEY_CLASSES_ROOT\*\ShellEx\ContextMenuHandlers\FGShellExt
Le programme en rapport avec FGShellExt était
Folder
Guide (suivre le lien, un utilisateur témoigne du problème dans les
commentaires). La
version 1.2 ne
corrige pas le trouble. La désinstallation permet de retrouver un comportement
normal du Menu Contextuel, mais le nettoyage des clés du registre a dû être fait
manuellement.
La présence d'un programme dans le menu Contextuel peut
entraîner des troubles plus gênants.
ShellExView développé
par l'excellent Nir Sofer peut être une
bonne aide pour trouver le coupable dans les lignes surlignées dans
ShellExView.
Cet article http://fspsa.free.fr/copier-dans.htm explique comment on utilise la clé HKCR\AllFilesystemObjects pour ajouter des items au menu contextuel de tous les objets.
L'utilisation de la clé HKCR\AllFilesystemObjects\shell s'est révélée très efficace pour l'implantation de notre item Console> dans le menu contextuel de tous les objets. Le reg précédent tient à présent en seulement trois lignes avec consoleallfiles.reg :
REGEDIT4 |
Une fois fusionné consoleallfiles.reg au registre (clic droit sur le fichier téléchargé, Fusionner) on peut ouvrir une Console de commandes depuis n'importe quel fichier ou dossier. Pour désinstaller, supprimer la clé HKCR\AllFilesystemObjects\shell\Console>
Ça n'apporte pas grand chose, mais si on veut que l'item soit présent dans le menu contextuel de certains objets comme Poste de Travail, ajouter Folder :
[HKEY_CLASSES_ROOT\Folder\shell\Console>\Command]
@="cmd.exe /k cd %L&color 1F"
On pourra s'amuser à donner des noms différents à l'item, par exemple ConsoleObjects> et ConsoleFolder> pour observer dans quels cas on a l'un ou l'autre item, ou les deux ensemble.
Testé sur XPHOME, XPPRO, Vista, Win7.
C'est une proposition qu'on trouve souvent : ajouter le Bloc-Notes dans le Menu Contextuel des fichiers. C'est effectivement très pratique pour examiner le contenu de toutes sortes de fichiers. On applique la méthode à la clé HKCR\*\ pour pouvoir ouvrir ainsi les fichiers dont l'extension n'est pas connue :
[HKEY_CLASSES_ROOT\*\shell\Bloc-Notes>\Command]
@="notepad %1"
Vous trouverez d'autres suggestions dans l'article Rightclick options.
Ce freeware est très pratique pour inspecter, voire modifier (si autorisé)
les ressources cachées dans les exécutables et les dll.
Téléchargez la
dernière version chez
gratilog.
D'après le site
officiel Resource Hacker n'est plus développé, mais l'auteur ayant eu besoin
d'accéder à des ressources 64 bits, il a modifié son logiciel, et de ce fait il
propose tout de même une nouvelle version 3.5.2.84 compatible 64 bits :
http://www.angusj.com/resourcehacker/reshack_setup.exe
J'avais auparavant expliqué comment ajouter Resource Hacker au menu
contextuel des EXE et des DLL, mais la nouvelle version inclut cette
amélioration. Vous pourrez vérifier en visualisant avec regedit les clés :
HKEY_CLASSES_ROOT\exefile\shell\
HKEY_CLASSES_ROOT\dllfile\shell\
Les fichiers MUI de localisation linguistique sont situés, pour le français, dans C :\Windows\System32\fr-FR\
Ils adaptent l'interface d'un programme à la langue locale en fournissant les
ressources localisées.
C'est ainsi que vous pouvez prendre par exemple connnaissance
des codes et messages d'erreur de cmd.exe.mui
Je propose d'ajouter l'item
ResourceHacker aux fichiers MUI en prenant pour modèle ce qu'a fait le programme
d'installation.
Avec un Windows en 64 bits on obtient ceci :
HKEY_CLASSES_ROOT\.MUI\shell\ResourceHacker\command
@="C:\Program
Files (x86)\Resource Hacker\reshacker.exe" "%1"
Program Files (x86) est propre aux systèmes 64 bits ; corrigez selon votre installation.
Lancement
automatique d'un exécutable ou d'un script dans une fenêtre de commandes
Modifications de la
base de registres en ligne de commande
http://forum.zebulon.fr/editeur-du-registre-gestion-des-cles-et-valeurs-t65599.html
http://www.hotline-pc.org/menucontextuel.htm
http://www.hotline-pc.org/dosastuces.htm
http://fspsa.free.fr/vbscripting.htm
Copier et coller avec la Console
CMD
BONUS : la
complétion de commandes
Presse-Papier Vers Regedit ou Comment copier une clé et l'ouvrir dans Regedit
TextExec
ShellExView de
Nir Sofer
ResScanner de
Nir Sofer
http://fspsa.free.fr/copier-dans.htm
Problem caused by adding Copy To and Move To as context menu entries
Add Copy To and Move To to the right-click menu in Vista - The Winhelponline
Blog
Manage the context-menu
entries for files, folders, drives and Namespace objects
Gratilog :
Logiciels français :
Programmation :
Editeurs hexadécimaux - Editeurs de ressources
Gratilog :
Logiciels a nglais : Programmation : Editeurs
hexadécimaux - Editeurs de ressources
KB315516 : Comment faire
pour ajouter, modifier ou supprimer des sous-clés et valeurs de Registre à
l'aide d'un fichier d'inscriptions dans le Registre (.reg)
KB320148 : How to start a
command prompt in a folder in Windows Server 2003, Windows XP, and Windows 2000
KB816097 : COMMENT FAIRE :
Démarrage d'une invite de commande dans un dossier sous Windows Server 2003
HKEY_CLASSES_ROOT Key
Registering
Shell Extensions
Bonne utilisation !
Retour au début
Les restes du site
JF
(Jean-François)
Créée le 11/12/2005