Quelles variables spéciales sont disponibles lors de l'écriture d'une commande shell pour un menu contextuel

Lorsque vous étendez le menu contextuel de Shell de Windows (p. Ex. Pour ajouter une invite «Ouvrir commande ici» sur les répertoires), une clé de «commande» doit être créée dans le registre.

La valeur de cette touche "commande" apparemment peut être une ligne de commande valide.

Je veux savoir quelles «variables spéciales» sont disponibles pour une utilisation dans cette ligne de commande.

Par exemple, j'utilise la commande suivante pour ouvrir une fenêtre cmd à partir du 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 en fait ou à la liste complète de ces variables.


(*) Les clés de Registre suivantes sont créées pour ceci: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Directory \ shell \ cmdshell] @ = Ouvrir l'invite de commande ici "

HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Directory \ shell \ cmdshell \ command] @ = "cmd.exe / e: on / f: on / s / k pushd \"% V \ ""

4 Solutions collect form web for “Quelles variables spéciales sont disponibles lors de l'écriture d'une commande shell pour un menu contextuel”

Un commentaire de Chris Guzak sur les menus de raccourcis Shortcut Menus L' article MSDN répertorie les différentes "variables de ligne de commande" disponibles:

% * – Remplacer par tous les paramètres.

% ~ – Remplacer par tous les paramètres commençant par et après le second paramètre.

% 0 ou% 1 – Le premier paramètre de fichier. Par exemple "C: \ Users \ Eric \ Desktop \ New Text Document.txt". Généralement, cela devrait être entre guillemets et l'analyse des lignes de commande des applications devrait accepter des guillemets pour désambiguiser les fichiers avec des espaces dans le nom et les différents paramètres de la ligne de commande (c'est une meilleure pratique de sécurité et je l'ai mentionné dans MSDN).

% <N> (où <n> est 2-9) – Remplacer par le n ième paramètre.

% S – Montrer la commande.

% H – Valeur des raccourcis clavier.

% I – IDList stocké dans une mémoire de mémoire partagée est transmis ici.

% L – Nom de fichier long du premier paramètre. Notez que les applications Win32 / 64 seront transmises au nom de fichier long, tandis que les applications Win16 obtiennent le nom de fichier court. La spécification de% l est préférée car elle évite de rechercher le type d'application.

% D – Nom d'analyse absolu du bureau du premier paramètre (pour les éléments qui n'ont pas les chemins du système de fichiers).

% V – Pour les verbes qui ne l'impliquent pas tous. S'il n'y a pas de paramètre, il s'agit du répertoire de travail.

% W – Le répertoire de travail.

Donc,% L ou% l devraient être préférés.

Voir aussi http://www.robvanderwoude.com/ntstart.php

Cette question m'a intrigué, donc j'ai expérimenté. J'ai un dossier C:\iso . Ce que j'ai trouvé lorsque j'ai fait le clic droit:

 D = C:\iso H = 0 I = :115057472:7932 L = C:\iso S = 1 V = C:\iso W = C:\ 

I retourné un ensemble différent de chiffres sur chaque essai. H était toujours 0 et S était toujours 1. D , L et V étaient tous les dossiers cibles. W était le parent du dossier cible. Quelqu'un a-t-il soin de développer cela?

FYI: J'ai utilisé les entrées de registre suivantes pour tester:

 [HKEY_CLASSES_ROOT\Directory\shell\testcmd] @="Test Command Window Directory" [HKEY_CLASSES_ROOT\Directory\shell\testcmd\command] @="cmd.exe /k \"echo %A`%B`%C`%D`%E`%F`%G`%H`%I`%J`%K`%L`%M`%N`%O`%P`%Q`%R`%S`%T`%U`%V`%W`%X`%Y`%Z\"" 

(Les caractères ont été utilisés pour les délimiteurs)

Voici les arguments / syntaxe pour cmd.exe

/k exécute la commande spécifiée par la chaîne suivante afin qu'elle exécute la commande pushd %V et que le seul argument pushd accepte est un chemin, il s'ensuit que %V une variable livrée par l'explorateur qui contient le chemin du dossier a fait un clic droit.

Il est en effet difficile de trouver ce que signifie% V ou une liste de ces variables, à travers Google, j'ai constaté qu'il existe un% L aussi. Je ne pense pas que vous devez passer plus de% V ou% L à une invite, car il n'y a pas d'autre information utile que je pense. Où% V pourrait être le nom du répertoire,% L pourrait être un emplacement dans un fichier. Faire un «écho» pourrait vous aider en cas de doute …

  • Windows 7 Boot to VHD à l'aide d'un clone VHD du lecteur du système
  • Pourquoi ne puis-je pas changer la clé de registre Window 7?
  • Sauvegarde d'un logiciel installé
  • Comment puis-je définir un programme dans la barre des tâches de Windows 7, avec des paramètres?
  • Comment exporter une clé de registre spécifique vers un fichier texte en utilisant la ligne de commande
  • Pourquoi mon gestionnaire de menu à raccourci statique écrase le comportement de Jumplist de Windows 10?
  • Existe-t-il un moyen d'autoriser les utilisateurs de télécommande simultanés sur XP sans changer de DLL?
  • Comment refaire une clé à une combinaison de touches dans le registre Windows 7?
  • Désinstaller Deep Freeze manuellement à l'aide du registre Windows
  • Comment détacher les raccourcis spécifiques de Windows Explorer
  • Pourquoi ne puis-je pas changer la clé de registre Window 10?
  • Soyons le génie de l'ordinateur et du réseau.