Double Commander

2.12. Variables en los parámetros

Contenido

1. Introducción rápida
2. Variables básicas de parámetros
3. Variables de sufijo básico
4. Sufijo numerado
5. Prefijo y sufijo para cada archivo
6. Ruta del panel
7. Resultado con o sin comillas
8. Separador final en la ruta
9. Lista de archivos
10. Sufijo para lista de archivos
11. Combinación de sufijos para listas de archivos
12. Ejecutar en terminal
13. Interacción
14. Otras variables
15. Tabla resumen de todas las variables
16. Variables de entorno

1. Introducción rápida

Las variables nos ayudarán cuando configuremos botones de barra de herramientas o definamos acciones de asociaciones de archivos y acciones de teclas rápidas.

Básicamente se utilizan estas variables cuando necesitamos proporcionar argumentos a comandos basados en el archivo actualmente seleccionado, su directorio u otra información contextual relacionada con lo mostrado en los paneles.

Aquí hay un ejemplo sencillo. Un usuario configura un botón para iniciar IrfanView usando la variable %p como argumento.

Ejemplo de variable

Cuando el usuario hace clic en ese botón, iniciará IrfanView reemplazando la variable %p por el archivo actualmente seleccionado en el panel activo.

Este es el significado de las variables descritas en esta página.

Como verás, la mayoría de las variables comienzan con el signo porcentual %.

Nota: ¡Las variables y los sufijos distinguen entre mayúsculas y minúsculas!

2. Variables básicas de parámetros

Estas son las variables básicas que puedes usar, relacionadas con la selección actual.

Por defecto, los valores de las variables que contienen espacios y/o caracteres especiales se escapan automáticamente: en Windows los valores se rodean con comillas dobles, o en sistemas tipo Unix se antepone "\" a los caracteres especiales. Si necesitas resultados sin comillas, consulta la sección Resultado con o sin comillas.

Para cada variable, el ejemplo asume que apuntamos al archivo C:\Users\UserName\Desktop\comment.png.

Variables básicas
VariableSignificado
%p
Nombre completo del archivo, ruta + nombre del archivo
Ejemplo: %p = "C:\Users\UserName\Desktop\comment.png"
%f
Solo el nombre del archivo, incluyendo la extensión
Ejemplo: %f = "comment.png"
%d
Solo la ruta, sin el separador de directorio final
Ejemplo: %d = "C:\Users\UserName\Desktop"
%z
Nombre del último directorio en la ruta
Ejemplo: %z = "Desktop"
%o
Solo el nombre del archivo, sin la extensión
Ejemplo: %o = "comment"
%e
Solo la extensión, sin el punto
Ejemplo: %e = "png"
%v
Nombre del archivo relativo al directorio activo actual
Por ejemplo, cuando llamamos al comando interno cm_FlatView.
Si desde el directorio "C:\Users\UserName" hacemos una vista plana, %v daría como resultado "Desktop\comment.png"

La variable %a puede usarse para sistemas de archivos virtuales (archivos abiertos o plugins del sistema de archivos): la cadena incluye la ruta del sistema de archivos virtual (nombre completo del archivo o nombre del plugin WFX con "wfx://") y el nombre completo del archivo relativo a la raíz del sistema de archivos virtual.

Si se seleccionan varios archivos, estas variables devolverán los valores de todos los archivos seleccionados en una línea. Para obtener siempre el valor del archivo bajo el cursor, podemos usar el sufijo numerado 0.

3. Sufijos básicos

Después de las letras de las variables mencionadas anteriormente, podemos añadir otra letra para especificar con mayor precisión qué queremos usar.

Para cada variable, el ejemplo asume:
El panel izquierdo apunta al archivo "C:\LeftFolder\File.lft"
El panel derecho apunta a "C:\RightFolder\File.rgh"
El panel activo actual es el panel derecho.

Sufijos básicos
SufijoSignificado
s
Panel fuente o activo (ya sea izquierdo o derecho)
Ejemplo: %ps = "C:\RightFolder\File.rgh"
t
Panel objetivo o inactivo (ya sea izquierdo o derecho)
Ejemplo: %pt = "C:\LeftFolder\File.lft"
l
Panel izquierdo
Ejemplo: %pl = "C:\LeftFolder\File.lft"
r
Panel derecho
Ejemplo: %pr = "C:\RightFolder\File.rgh"
p
Ambos paneles, panel activo primero, seguido de un espacio y luego el panel inactivo
Ejemplo: %pp = "C:\RightFolder\File.rgh" "C:\LeftFolder\File.lft"
b
Ambos paneles, panel izquierdo primero, seguido de un espacio y luego el panel derecho
Ejemplo: %pb = "C:\LeftFolder\File.lft" "C:\RightFolder\File.rgh"

4. Sufijo numerado

Si actualmente tenemos varios archivos seleccionados, podemos agregar un sufijo numerado a los sufijos mencionados anteriormente para especificar exactamente qué archivo queremos usar.

Para cada elemento de la tabla, asumimos que el panel fuente apunta a "C:\temp\", y que hemos seleccionado veinte archivos, desde "FileA.txt", "FileB.txt", etc., hasta "FileZ.txt".

Sufijo numerado
SufijoSignificado
0
Archivo bajo el cursor
Ejemplo: %ps0 = "C:\temp\FileY.txt"
1
Primer archivo seleccionado
Ejemplo: %ps1 = "C:\temp\FileA.txt"
2
Segundo archivo seleccionado
Ejemplo: %ps2 = "C:\temp\FileB.txt"
3
Tercer archivo seleccionado
Ejemplo: %ps3 = "C:\temp\FileC.txt"
21
Vigésimo primer archivo seleccionado
Ejemplo: %ps21 = "C:\temp\FileU.txt"

5. Prefijo y sufijo para cada archivo

A veces, al pasar parámetros a un ejecutable, necesitamos incluir algo antes del nombre del archivo.

Otras veces queremos incluir algo tanto antes como después del nombre del archivo.

Ten en cuenta que lo siguiente se aplicará a cada elemento seleccionado.

Para cada elemento de la tabla, asumimos que actualmente en "C:\Windows\Fonts" se han seleccionado tres archivos: "courrier.ttf", "fixedsys.ttf" y "terminal.ttf".

Prefijo y sufijo
Prefijo y sufijoSignificado
{}
Un par de llaves hará que el texto entre ellas se agregue antes de cada elemento seleccionado.
Ejemplo: %fs{+} = "+courrier.ttf" "+fixedsys.ttf" "+terminal.ttf"
{}{}
Dos pares de llaves harán que el texto entre ellos se coloque respectivamente antes y después de cada elemento seleccionado.
Ejemplo: %fs{[}{]} = "[courrier.ttf]" "[fixedsys.ttf]" "[terminal.ttf]"

6. Ruta del panel

Anteriormente ya señalamos las variables relacionadas con los elementos seleccionados actualmente dentro del panel.

Pero también podemos usar la variable %D para referirnos al nombre del directorio del panel.

Para esta variable, podemos agregar las mismas letras de sufijo mencionadas anteriormente para especificar exactamente qué panel queremos referenciar.

Para cada variable, el ejemplo asume:
El panel izquierdo está en "C:\Reference"
El panel derecho apunta a "E:\Work"
El panel activo actual es el panel derecho.

Ruta del panel
VariableSignificado
%D
Usado solo, sin sufijo, devolverá la ruta del panel activo actual
Ejemplo: "E:\Work"
%Ds
Directorio del panel activo o fuente (ya sea izquierdo o derecho)
Ejemplo: "E:\Work"
%Dt
Directorio del panel inactivo u objetivo (ya sea izquierdo o derecho)
Ejemplo: "C:\Reference"
%Dl
Directorio del panel izquierdo
Ejemplo: "C:\Reference"
%Dr
Directorio del panel derecho
Ejemplo: "E:\Work"
%Z
Usado solo, sin sufijo, devolverá el nombre del último directorio de la ruta del panel activo
Ejemplo: "Work"
%Zs
Nombre del último directorio de la ruta del panel activo (ya sea izquierdo o derecho)
Ejemplo: "Work"
%Zt
Nombre del último directorio de la ruta del panel inactivo (ya sea izquierdo o derecho)
Ejemplo: "Reference"
%Zl
Nombre del último directorio de la ruta del panel izquierdo
Ejemplo: "Reference"
%Zr
Nombre del último directorio de la ruta del panel derecho
Ejemplo: "Work"

La variable %A puede usarse para sistemas de archivos virtuales (archivos abiertos o plugins del sistema de archivos): el nombre completo del archivo o el nombre del plugin WFX con "wfx://".

7. Resultado con o sin comillas

Como viste anteriormente, por razones históricas y tradicionales, DC devolverá resultados entre comillas.

Inicialmente esto era útil cuando había espacios en los nombres de los archivos y queríamos pasarlos como parámetros esperando que todo funcionara correctamente.

Sin embargo, con la adición de nuevas variables, queda claro que necesitamos una forma de obtener resultados sin comillas. Un ejemplo básico es cuando queremos concatenar un nombre de archivo fuente, pero solo el nombre del archivo sin la extensión, y luego añadir una nueva extensión que nosotros mismos especifiquemos.

Por lo tanto, en lugar de añadir nuevas variables que devuelvan el mismo contenido pero sin comillas, aún podemos usar las mismas variables con el mismo significado, pero simplemente establecer previamente algo como %"0 en la línea de parámetros para indicar a DC que, a partir de ahora, no debe poner entre comillas los resultados al evaluar el final de la línea.

Básicamente tendríamos:

%"0 : A partir de esta posición, los nombres de archivo generados no llevarán comillas
%"1 : A partir de esta posición, los nombres de archivo generados llevarán comillas
%"  : También aceptado, restaura el valor predeterminado, es decir, los resultados llevan comillas

La siguiente tabla da un ejemplo donde seleccionamos un archivo llamado "Client List.mdb", y varias combinaciones de resultados con/sin comillas:

Ejemplos con/sin comillas
ExpresiónResultado
%o.zip
"Client List".zip
%"0%o.zip
Client List.zip
%"0"%o.zip"
"Client List.zip"
%"0"%o.zip" %"1%f
"Client List.zip" "Client List.mdb"

8. Separador final en la ruta

Como viste anteriormente, por razones históricas y tradicionales, cuando DC devuelve una ruta, no incluye el separador final de directorio.

Esto se puede cambiar usando una variable que determinará si las variables de ruta en la línea siguiente incluyen o no un separador final de directorio.

Básicamente tenemos:

%/0 : Las rutas devueltas no tendrán separador final
%/1 : Las rutas devueltas tendrán separador final
%/  : También aceptado, por defecto las rutas devueltas no tendrán separador final

La siguiente tabla muestra un ejemplo donde seleccionamos el directorio "C:\Users\UserName\Desktop", y varias combinaciones de resultados con la variable de separador final:

Ejemplo de variable de separador final
ExpresiónResultado
%D
"C:\Users\UserName\Desktop"
%/0%D
"C:\Users\UserName\Desktop"
%/1%D
"C:\Users\UserName\Desktop\"
%/%D
"C:\Users\UserName\Desktop"

Esta variable es útil cuando combinamos nombres desde múltiples variables. Por ejemplo, en Windows, %Dt\%f0 (añadiendo manualmente el separador de directorio) funciona bien dentro de directorios, pero si se abre la raíz de una unidad en el panel inactivo, Double Commander devolverá una ruta incorrecta con dos separadores de directorio tras la letra de la unidad.

9. Lista de archivos

Algunas aplicaciones aceptan un único nombre de archivo como argumento y asumen que este archivo contiene una lista de nombres de archivos en formato de texto plano.

Double Commander ofrece variables que crearán un archivo temporal en el directorio temporal del sistema operativo, dicho archivo contendrá la lista de todos los elementos seleccionados actualmente, y el nombre del archivo creado será pasado como valor de la variable.

Variables de lista de archivos
ExpresiónDescripción
%L
Nombre del archivo que contiene la lista completa de los elementos seleccionados (ruta + nombre de archivo)
%F
Nombre del archivo que contiene solo los nombres de los archivos seleccionados
%R
Nombre del archivo que contiene solo las rutas relativas de los elementos seleccionados

Double Commander utilizará la codificación ANSI del sistema en Windows o la codificación predeterminada del sistema en sistemas tipo Unix (normalmente UTF-8 en distribuciones GNU/Linux).

Al cerrar, Double Commander eliminará todos estos archivos temporales.

10. Sufijos para listas de archivos

Por defecto, los nombres de archivo en la lista no están entrecomillados. Sin embargo, puede añadir un sufijo para cambiar este comportamiento.

Además, existen sufijos que permiten especificar si desea que la lista de archivos esté codificada en UTF-8 o UTF-16.

Sufijos para variables de lista de archivos
ExpresiónDescripción
Q
Los nombres de archivo en la lista estarán entrecomillados
U
La lista se codificará en formato UTF-8
W
La lista se codificará en formato UTF-16

11. Combinación de sufijos para listas de archivos

También puede añadir otro sufijo utilizando las mismas letras mencionadas anteriormente para especificar de qué panel se desea obtener la lista de archivos.

A continuación se muestran algunos ejemplos posibles:

Combinación de sufijos para variables de lista de archivos
ExpresiónDescripción
%LQt
Nombres completos de archivos, entrecomillados, provenientes del panel objetivo
%FUs
Solo nombres de archivos, codificados en UTF-8, provenientes del panel fuente
%RQW
Nombres relativos de archivos, entrecomillados, codificados en UTF-16, provenientes del panel fuente (por defecto)

12. Ejecutar en terminal

Puede especificar en los parámetros si desea ejecutar la línea de comandos configurada dentro de una terminal.

Para ello, utilice la variable %t.

Ejecutar en terminal
ExpresiónDescripción
%t0
Ejecutar en terminal y solicitar cierre al finalizar
%t1
Ejecutar en terminal y mantener abierto al finalizar

13. Interacción

A continuación se presentan dos variables útiles para mostrar mensajes e interactuar solicitando al usuario que introduzca parámetros durante la ejecución, con valores predeterminados sugeridos:

Interacción
ExpresiónDescripción
%[mensaje_a_mostrar]
Mostrará un cuadro de mensaje con el texto especificado entre corchetes
%[mensaje;valor_predeterminado]
Pedirá al usuario que introduzca un valor y proporcionará uno predeterminado

Ejemplos de interacción:

Ejemplos de interacción
ExpresiónDescripción
%[¡Asegúrese de que ThisFile.ext está cerrado!]
Mostrará el mensaje "¡Asegúrese de que ThisFile.ext está cerrado!" antes de ejecutar la acción.
%[Ingrese el valor de ANCHO para conversión de imagen;1024]
Pedirá al usuario que ingrese un valor mostrando el texto "Ingrese el valor de ANCHO para conversión de imagen", con un valor sugerido de 1024, aunque el usuario puede ingresar otro valor. El valor ingresado reemplazará la expresión "%[consulta;predeterminado]" en la línea de comandos.

14. Otras variables

En esta última sección presentamos variables que aún no han sido explicadas.

Otras variables
ExpresiónDescripción
%%
Será reemplazado simplemente por un solo carácter %
%#
Desde esta posición, el símbolo # será tratado como %
#%
Desde el estado anterior, restablece % como prefijo para variables
%?
Mostrará la línea de comandos que se va a ejecutar.

El propósito de %% es cuando necesitamos tener un carácter % en los parámetros sin que sea interpretado como parte de una variable válida, ya que podría seguirse de una letra formando una variable real.

La variable %? es especialmente útil al configurar nuevos botones de herramientas para asegurarnos de qué argumentos serán sustituidos.

Con %?, DC le permite ver los comandos y argumentos realmente usados para iniciar algo.

No solo eso, sino que incluso puede hacer cambios de último minuto antes de iniciar algo.

Esto es particularmente útil cuando no está seguro de qué argumentos pasar a una aplicación destino.

A veces, la combinación de un carácter de porcentaje y una letra de variable puede entrar en conflicto con variables del sistema.

Por ejemplo, si introduce %os%ot, pensando que será reemplazado por la simple concatenación de extensiones de archivo de los paneles activo e inactivo, podría sorprenderse de que no funcione correctamente en Windows.

La secuencia %os% normalmente sería reemplazada por el nombre del sistema operativo, porque %os% es una variable del sistema que representa el nombre del sistema operativo.

Aquí es donde resulta útil %#.

En tal ejemplo, escribiría %##os#ot.

%# indica a DC que, desde ahora, # actuará como equivalente al carácter de porcentaje, evitando así conflictos con posibles variables del sistema.

Esto rara vez es necesario, ¡pero saber que existe es muy útil!

Luego, si es necesario, #% restablecerá % como el verdadero prefijo de porcentaje para variables.

15. Tabla resumen de todas las variables

Esta sección no introduce nada nuevo, pero vamos a reunir todas las variables compatibles junto con sus significados en una sola tabla.

Resumen de variables
ExpresiónDescripción
%p
Nombre completo del archivo incluyendo la ruta
%f
Solo el nombre del archivo, incluyendo la extensión
%d
Solo la ruta
%z
Último directorio en la ruta
%o
Solo el nombre del archivo, sin la extensión
%e
Solo la extensión del archivo, sin el punto
%v
Nombre del archivo relativo al directorio activo actual
s
Sufijo para el panel fuente o activo (ejemplo: %ps)
t
Sufijo para el panel objetivo o inactivo (ejemplo: %pt)
l
Sufijo para el panel izquierdo (ejemplo: %pl)
r
Sufijo para el panel derecho (ejemplo: %pr)
p
Sufijo para ambos paneles, con el panel activo primero, seguido del inactivo (ejemplo: %pp)
b
Sufijo para ambos paneles, con el panel izquierdo primero, seguido del derecho (ejemplo: %pb)
0
Archivo bajo el cursor (ejemplo: %ps0)
1
Primer archivo seleccionado (ejemplo: %ps1)
2
Segundo archivo seleccionado (ejemplo: %ps2)
3
Tercer archivo seleccionado (ejemplo: %ps3)
21
Vigésimo primer archivo seleccionado (ejemplo: %ps21)
{prefijo}
Usando {} una vez, agrega un prefijo antes del nombre del archivo (ejemplo: %f{+})
{prefijo}{sufijo}
Usando {} dos veces, agrega prefijo y sufijo antes y después del nombre del archivo respectivamente (ejemplo: %f{[}{]})
%D
Por defecto, la ruta del panel activo (fuente)
%Ds
Especifica explícitamente la ruta del panel activo (fuente)
%Dt
Ruta del panel inactivo (objetivo)
%Dl
Ruta del panel izquierdo, independientemente de cuál esté activo
%Dr
Ruta del panel derecho, independientemente de cuál esté activo
%Z
Por defecto, el nombre del último directorio de la ruta del panel activo (fuente)
%Zs
Especifica explícitamente el nombre del último directorio de la ruta del panel activo (fuente)
%Zt
Nombre del último directorio de la ruta del panel inactivo (objetivo)
%Zl
Nombre del último directorio de la ruta del panel izquierdo, independientemente de cuál esté activo
%Zr
Nombre del último directorio de la ruta del panel derecho, independientemente de cuál esté activo
%"0
Desde esta posición, los nombres de archivo generados no llevarán comillas
%"1
Desde esta posición, los nombres de archivo generados llevarán comillas
%"
También aceptado, restablece los nombres de archivo generados con comillas
%/0
Por defecto, las rutas devueltas no tendrán separador final
%/1
Las rutas devueltas tendrán separador final
%/
También aceptado, por defecto las rutas devueltas no tendrán separador final
%L
Nombre del archivo que contiene la lista de archivos seleccionados, incluyendo nombre completo (ruta + nombre)
%F
Nombre del archivo que contiene la lista de archivos seleccionados, solo nombres de archivos
%R
Nombre del archivo que contiene la lista de archivos seleccionados, solo rutas relativas
Q
Sufijo para %L, %F o %R para solicitar nombres de archivo entrecomillados
U
Sufijo para %L, %F o %R para solicitar una lista codificada en UTF-8
W
Sufijo para %L, %F o %R para solicitar una lista codificada en UTF-16
%t0
Ejecutar en terminal y solicitar cierre al finalizar
%t1
Ejecutar en terminal y mantener abierto al finalizar
%[mensaje_a_mostrar]
Mostrará un cuadro de mensaje con el texto especificado entre corchetes
%[mensaje;valor_predeterminado]
Pedirá al usuario que introduzca un valor y proporcionará un valor sugerido
%%
Será reemplazado simplemente por un solo carácter %
%#
Desde esta posición, el símbolo # será tratado como %
#%
Desde el estado anterior, restablece % como prefijo para variables
%?
Mostrará la línea de comandos que se va a ejecutar

16. Variables de entorno

Podemos usar variables de entorno en la configuración de Double Commander: en los nombres de ejecutables e iconos en la barra de herramientas, nombres de complementos, directorios favoritos, etc. Es una manera conveniente de especificar rutas si no queremos usar rutas absolutas.

Double Commander soporta variables de entorno del sistema y proporciona algunas propias:

Variables de entorno
VariableDescripción
%COMMANDER_EXE%
Nombre completo del ejecutable de Double Commander (ruta + nombre de archivo) (los enlaces simbólicos serán reemplazados por el archivo real)
%COMMANDER_PATH%
Directorio donde se encuentra el ejecutable de Double Commander
%COMMANDER_DRIVE%
Disco donde se encuentra la carpeta de Double Commander:
- En Windows: letra de unidad (con dos puntos);
- En sistemas tipo Unix: punto de montaje.
%COMMANDER_INI%
Nombre completo del archivo de configuración principal (doublecmd.xml) (ruta + nombre de archivo)
%COMMANDER_INI_PATH%
Directorio donde se encuentran los archivos de configuración de Double Commander
%DC_CONFIG_PATH%
Directorio donde se encuentran los archivos de configuración de Double Commander

Los nombres de variables %COMMANDER_PATH% y %DC_CONFIG_PATH% no distinguen mayúsculas/minúsculas y podemos usar el signo de porcentaje % sin importar la familia del sistema operativo (esto es conveniente para aplicaciones multiplataforma por compatibilidad hacia atrás). Sin embargo, en sistemas tipo Unix, los nombres de variables de entorno sí distinguen mayúsculas/minúsculas y tradicionalmente se escriben en mayúsculas, por lo que usar la ortografía tradicional puede ser una buena práctica.

En Windows, además podemos usar pseudo-variables de entorno con formato %$Nombre%, que corresponden a carpetas estándar del sistema Windows (para obtener sus valores, Double Commander usa funciones SHGetSpecialFolderPath y SHGetKnownFolderPath de la API de Windows). Estas no son variables normales de entorno y no están disponibles para procesos hijos (aplicaciones lanzadas desde Double Commander), pero en otros aspectos podemos usarlas de forma similar a variables de entorno. Todas estas variables están recopiladas en el menú del asistente de selección de rutas: a la derecha del botón de selección de archivo o directorio hay un botón Seleccionar función adecuada para la ruta Seleccionar función adecuada para la ruta, descrito aquí.

Todas estas variables han sido añadidas al menú de lista de carpetas frecuentes (Directorios especiales submenú).


Creado originalmente por Rustem (dok_rust@bk.ru)

Valid HTML 4.0 Transitional CSS Valid!