Lors de l'extension du menu contextuel du shell de Windows (par exemple, pour ajouter une invite "Ouvrir la commande ici" sur les répertoires), une clé "commande" doit être créée dans le registre.
La valeur de cette touche 'commande' peut apparemment être n'importe quelle ligne de commande valide.
Je veux savoir quelles "variables spéciales" peuvent être utilisées dans cette ligne de commande.
Par exemple, j'utilise la commande suivante pour ouvrir une fenêtre de commande depuis un menu contextuel d'un répertoire (*):
cmd.exe /e:on /f:on /s /k pushd "%V"
Je ne trouve aucune référence à ce que %V
signifie réellement ou quelle est la liste complète de ces variables.
(*) Les clés de registre suivantes sont créées pour cela:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell]
@=Open Command Prompt Here"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell\command]
@="cmd.exe /e:on /f:on /s /k pushd \"%V\""
%W
: Il n'est pas toujours disponible et émettra un message d'erreur cryptique s'il est utilisé dans votrecommand
valeur. Par exemple, l'appel de votre élément de menu contextuel sur le menu contextuel d'un lecteur ou d'un dossier de bibliothèque n'initialisera pas cette variable. Évitez son utilisation en dehors de l'entrée de menu contextuel d'un gestionnaire de fichiers.%~
? Je reçois seulement une erreur.%V
devrait être utilisé si vous voulez le nom du répertoire, c'est à dire. lorsque vous souhaitez ajouter votre commande dans le menu contextuel lorsque vous cliquez sur l’arrière-plan, et non sur un seul fichier ou sur un nom de répertoire.%L
ne fonctionnera pas dans ce cas.Cette question m'a intriguée alors j'ai fait quelques expériences. J'ai un dossier
C:\iso
. Ce que j'ai trouvé en faisant un clic droit:I
retourné un ensemble différent de nombres à chaque essai.H
était toujours 0 etS
était toujours 1.D
,L
etV
tout le reste du dossier cible.W
était le parent du dossier cible. Quelqu'un veut-il développer?FYI: J'ai utilisé les entrées de registre suivantes pour tester:
(Les `caractères ont été utilisés pour les délimiteurs)
la source
Voici les arguments / syntaxe pour cmd.exe
/k
exécute la commande spécifiée par la chaîne suivante afin d'exécuter la commande. Etantpushd %V
donné que le seul argument que pushd accepte est un chemin, il en résulte%V
une variable livrée par l'explorateur contenant le chemin du dossier cliqué avec le bouton droit de la souris.la source
Il est en effet difficile de trouver ce que% V signifie ou une liste de ces variables, grâce à Google, j’ai trouvé qu’il semblait exister un% L aussi. Je ne pense pas que vous deviez passer plus de% V ou% L à une invite, car il n'y a aucune autre information utile, je pense. Où% V pourrait être le nom du répertoire,% L pourrait être un emplacement dans un fichier. Faire un "écho" pourrait aider en cas de doute ...
la source