# Ejecutar comando

Un campo "Ejecutar comando" de una entrada puede contener un comando que se ejecutará cuando se selecciona la acción ejecutar comando. El comando puede ser cualquier cosa que pueda ejecutarse en el diálogo Inicio->Ejecutar... de tu computador.

Además, Password Safe puede pasar argumentos al comando como el nombre de la entrada contraseña, etc., como se describe más abajo. Esto te permite programar acciones complejas, como ejecutar un programa de acceso remoto (PuTTY, por ejemplo) y pasarle el usuario y contrasaña asociado con la entrada.

En general, las 'variables' son reemplazadas por los valores asociados con ellas, antes de transferirlos al ordenador para su ejecución. El signo ('$') dólar se emplea para indicar una variable.

- Las variables se especifican como '$nombre', y se distingue entre mayúsculas y minúsculas. Los nombres de variables siempre comienzan con un carácter alfabético y el resto de los caracteres son alfanuméricos. El nombre de la variable se termina al encontrarse con un carácter no alfanumérico (como un espacio) o al alcanzar el final del campo Ejecutar comando.

- Para utilizar una variable seguida de inmediato por un carácter alfanumérico, escribe el nombre de la variable entre llaves, por ejemplo, '${nombrevar}cadena'.
- Para utilizar un '$' en la cadena como texto normal (sin indicar que el texto que sigue es un nombre de variable), utiliza una barra invertida ('\'), por ejemplo '\$texto' se convierte en '$texto' y no es tratada como una variable llamada 'texto'.
- Para utilizar una barra invertida antes de que un '$', precédela con una barra invertida, por ejemplo, '\\$nombre' se convierte en "\$nombre' en el texto resultante y' $nombre' se trata como una variable. No hay que preceder una barra invertida con otra barra invertida a menos que preceda a un '$' indicando una variable.
- Una variable puede ser seguido por un valor numérico entre corchetes que se denomina un 'valor índice'. El valor índice 'n' puede estar precedido por '+' o '-' ejemplo [-2] o [2] o [+2]. Password Safe interpreta un índice con valor cero como todo el campo.

- Actualmente se reconocen las siguientes variables:

- Relacionados con la aplicación:

appdir | El directorio que contiene la apliación Password Safe. Ver notas 1 y 2 más abajo.

- Relacionados con la base de datos actual:

dbdir | Directorio de la base de datos actualmente abierta. Ver notas 1 y 2 más abajo.
fulldb | Ruta de acceso completa, nombre de archivo y extensión de la base de datos abierta. Ver nota 2 más abajo.
dbname | Nombre de archivo de la base de datos abierta.
dbextn | Extensión de la base de datos abierta.

- Relacionadas con la entrada actual:

g o group | Grupo (estructura de árbol completo hasta la raíz con grupos separados por puntos).
G o GROUP | El grupo que contiene esta entrada sólo.
t o title | Título
u o user | Usuario
p o password | Contraseña
a o autotype | Autoescritura. Ver nota 5 más abajo.
url | URL
n o n[0] | El campo notas completo (también: notes or notes[0]). Ver nota 3 más abajo.
n[i] o notes[i] | Línea i del campo Notas empezando por el principio, i=1 es la primera línea, i=2 es la segunda línea etc. Ver nota 4 más abajo.
n[-i] o notes[-i] | Línea idel campo Notas empezando por el final, i=1 es la última línea, i=2 es la penúltima línea etc. Ver nota 4 más abajo.

Notas |
--- | ---
1 | Los nombres de directorio (appdir o dbdir) no tienen una '\' al final. Recuerda añadirla si la necesitas en tu Ejecutar comando.
2 | El contenido de las variables (incluyendo los valores de directorio y ruta de acceso completa) puede incluir espaciones en blanco. Puedes necesitar encerrar el resultado entre comillas para una correcta ejecución de Ejecutar comando.
3 | Si el campo Notas contiene más de una línea, se incluirá cualquier retorno de carro (CR) o avance de línea (LF) incrustado. Esto puede causar problemas cuando se ejecuta y CR y/o LF se toman como 'Intro'.
4 | Cualquier CR y/o LF final se quitan de las líneas individuales seleccionadas del campo Notas.
5 | Si la variable Autoescritura está presente en el comando Ejecutar, se llevará a cabo una vez que la ventana de destino esté activa. La variable y su valor, si existe, será eliminado de la cadena que se ejecuta. Esta variable puede aparecer en cualquier lugar en el comando Ejecutar, ya que sólo especifica lo que Password Safe hará después de la cadena de comando se ha ejecutado. A diferencia de otras variables, ésta podrá tomar un valor para reemplazar el valor actual de la entrada. El formato es el siguiente (puede indicarse '$autotype' en lugar de '$a' en los ejemplos siguientes):
$a | Usa el valor de la entrada actual.
${a} | Usa el valor de la entrada actual (se usa si hay texto que sigue a la variable '$a').
$a(valor) | Usa la cadena especificada entre paréntesis para la autoescritura.
${a}(valor) | Usa la cadena especificada entre paréntesis para la autoescritura.

Nota: Asegúrate de añadir comillas alrededor de la cadena si es necesario, por ejemplo si el directorio de la base de datos contiene espacios, para acceder a un archivo de texto en el que basa en el nombre de base de datos abierta necesitarás lo siguiente (con comillas):
'$dbdir\\$dbname.txt'
La barra invertida está precedida por otra de forma que '$dbname' se reconoce como una variable.

En Windows se lleva a cabo la sustitución normal de las variables de entorno (especificado en %nombre_variable%). Por ejemplo: '%windir%\notepad.exe' puede convertirse (dependiendo de tu instalación) en 'C:\Windows\notepad.exe'. Los valores de entorno se puede comprobar ejecutando 'cmd.exe' e indicando el comando 'set' sin parámetros. Cualquier variable de entorno desconocida se deja sin cambios en Ejecutar comando, por ejemplo, %xyz%\notepad.exe permanece como %xyz%\notepad.exe si la variable 'xyz' no está definida. Nota: Las variables de entorno de Windows no distinguen maýusculas y minúsculas.