Cuando se amplía el menú contextual del shell de Windows (por ejemplo, para agregar un mensaje 'Abrir comando aquí' en los directorios), se debe crear una clave 'comando' en el registro.
El valor de esta tecla 'comando' aparentemente puede ser cualquier línea de comando válida.
Quiero saber qué 'variables especiales' están disponibles para usar dentro de esta línea de comando.
Por ejemplo, uso el siguiente comando para abrir una ventana cmd desde el menú contextual de un directorio (*):
cmd.exe /e:on /f:on /s /k pushd "%V"
No puedo encontrar ninguna referencia a lo que %V
realmente significa o cuál es la lista completa de tales variables.
(*) Se crean las siguientes claves de registro para esto:
[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
: No siempre está disponible y arrojará un mensaje de error críptico si se usa en sucommand
valor. Por ejemplo, llamar a su elemento del menú contextual en el menú contextual de una unidad o carpeta de biblioteca no inicializará esta variable. Evite su uso fuera de la entrada del menú contextual de un controlador de archivos.%~
? Solo recibo un error.%V
debe usarse si desea el nombre del directorio, es decir. cuando desee agregar su comando en el menú contextual cuando haga clic en el fondo, no en un solo archivo o nombre de directorio.%L
no funcionará en ese caso.Esta pregunta me intrigó, así que experimenté un poco. Tengo una carpeta
C:\iso
. Lo que encontré cuando hice el clic derecho:I
devolvió un conjunto diferente de números en cada intento.H
siempre fue 0 yS
siempre fue 1D
. ,,L
yV
fueron todas las carpetas de destino.W
fue el padre de la carpeta de destino. ¿A alguien le interesa ampliar esto?FYI: utilicé las siguientes entradas de registro para probar:
(Los caracteres `se usaron para delimitadores)
fuente
Aquí están los argumentos / sintaxis para cmd.exe
/k
ejecuta el comando especificado por la siguiente cadena para que ejecute el comandopushd %V
y, dado que el único argumento que pushd acepta es una ruta, sigue que%V
una variable entregada por el explorador que contiene la ruta de la carpeta hizo clic con el botón derecho.fuente
De hecho, es difícil encontrar qué significa% V o una lista de esas variables, a través de Google he descubierto que parece existir también un% L. No creo que tenga que pasar más de% V o% L a un aviso, ya que no creo que haya otra información útil. Donde% V podría ser el nombre del directorio,% L podría ser la ubicación de un archivo. Hacer un 'eco' podría ayudar en caso de duda ...
fuente