Modificación prompt

Con la personalización del prompt del símbolo del sistema, podemos acomodarlo a nuestras características y obtener un mejor aprovechamiento del mismo.

¿Qué es el prompt?

Se conoce como prompt al carácter o conjunto de caracteres que se muestran en la línea de comandos del símbolo del sistema o Power shell. Con ello pretende indicarnos que está activo y se encuentra a la espera de órdenes.

El prompt es configurable y se puede variar dependiendo del interprete de comandos que se utilice.

¿Cómo se puede modificar?

Existen diferentes métodos para modificar el prompt del sistema. Uno de ellos utiliza la interfaz gráfica de usuario y los otros utilizan la línea de comandos para su modificación.

  • Utilizar linea de comandos para modificación temporal

Si atendemos al comando help del símbolo de sistema. Existe un comando denominado prompt el cual cambia el símbolo de comandos de Windows.

ayuda prompt

Si utilizamos de nuevo el comando help, pero esta vez para conocer el funcionamiento del comando prompt, utilizando el comando help prompt, podemos observar lo mostrado en la tabla adjunta:

Cambia el símbolo del sistema de cmd.exe. PROMPT [text] text Especifica un nuevo símbolo del sistema.

En el símbolo del sistema se pueden escribir caracteres normales y los siguientes códigos especiales:

$A & (Y comercial)
$B | (barra vertical)
$C ( (paréntesis izquierdo)
$D Fecha actual
$E Código de escape (código ASCII 27)
$F ) (paréntesis derecho)
$G > (signo mayor que)
$H Retroceso (borra el carácter previo)
$L < (signo menor que)
$N Unidad actual
$P Unidad y ruta de acceso actual
$Q = (signo igual)
$S (espacio)
$T Hora actual
$V Número de versión de Windows
$_ Retorno de carro y alimentación de línea
$ $ (signo del dólar)

Si las Extensiones de comando están habilitadas, el comando PROMPT admite los siguientes caracteres de formato adicionales:

$+ cero o más caracteres de signo «más» (+) en función de la profundidad del directorio de pila PUSHD, un carácter por cada nivel insertado.

$M Muestra el nombre remoto asociado a la letra de unidad actual o la cadena vacía si la unidad actual no es una unidad de red.

Atendiendo a la ayuda del comando prompt. Podemos observar que para la modificación de éste será necesario escribir el comando prompt seguido del texto que deseamos tenga el nuevo prompt.

De este modo, si escribimos por ejemplo prompt servidor: el nuevo prompt quedará como indica la figura:

prompt modificado

Si seguimos analizando la ayuda del comando prompt; Podemos observar que existen una serie de códigos especiales, los cuales escriben un formato previamente configurado.

De este modo si por ejemplo queremos mostrar la hora actual del sistema en el prompt. Deberíamos de escribir prompt $T. O la unidad y ruta de acceso actual, escribiríamos prompt $P.

Estos códigos especiales, se pueden concatenar para formar una cadena personalizada. De este modo, si queremos que nuestro prompt, tenga el siguiente aspecto:

Deberíamos de escribir el siguiente código: prompt_$C$T$H$H$H$F$S$P:~$S. Con él tendríamos en el prompt la hora del sistema al inicio, eliminando las décimas y centésimas, la unidad y ruta de acceso actual, el símbolo de la virgulilla y el dólar separado por un espacio.

Para la modificación del prompt, no sólo se pueden utilizar un texto expecífico creado por nosotros, o un carácter especial indicado por el comando prompt. Durante la modificación, también podremos utilizar las variables de entorno del sistema operativo.

Utilización de la variables de entorno del sistema

Como sabemos, las variables de entorno del sistema, no son más que cadenas de caracteres que contienen información acerca del entorno para el sistema y el usuario; Si deseamos conocer, cuáles son las variables de entorno que existen en nuestro sistema, la opción más sencilla es escribir el comando set en el símbolo del sistema.

Una vez introducido el comando, el aspecto será algo similar al mostrado.

comando set

Siempre que deseemos conocer cuál es el valor de una variable de entorno, deberemos de escribir el nombre de la variable de entorno entre los símbolos %.

Por ello, si por ejemplo deseamos conocer cual es el nombre del equipo en el que estamos trabajando, deberíamos de escribir %computername%. Se debe señalar, que el sistema no distingue entre mayúsculas o minúsculas, y que si queremos ver en el símbolo del sistema el valor de la variable de entorno; Deberíamos de escribir el comando echo seguido por el nombre de la variable de entorno. De este modo, el comando completo sería el siguiente:

echo %computername%

Existen otras variables de entorno que nos podrían ser útiles para modificar el prompt del sistema, como son:

%DATE% Devuelve la fecha actual del sistema
%SYSTEMDRIVE%  Devuelve la unidad que contiene el directorio raíz del sistema, generalmente: C
%SYSTEMROOT% Devuelve la carpeta de administración, que suele ser C:\Windows.
%TIME%  Devuelve la hora actual.
 %USERNAME% Devuelve el nombre del usuario actual.
comando set

Siempre que deseemos conocer cuál es el valor de una variable de entorno, deberemos de escribir el nombre de la variable de entorno entre los símbolos %.

Por ello, si por ejemplo deseamos conocer cual es el nombre del equipo en el que estamos trabajando, deberíamos de escribir %computername%. Se debe señalar, que el sistema no distingue entre mayúsculas o minúsculas, y que si queremos ver en el símbolo del sistema el valor de la variable de entorno; Deberíamos de escribir el comando echo seguido por el nombre de la variable de entorno. De este modo, el comando completo sería el siguiente:

echo %computername%

Existen otras variables de entorno que nos podrían ser útiles para modificar el prompt del sistema, como son:

%DATE% Devuelve la fecha actual del sistema
%SYSTEMDRIVE%  Devuelve la unidad que contiene el directorio raíz del sistema, generalmente: C
%SYSTEMROOT% Devuelve la carpeta de administración, que suele ser C:\Windows.
%TIME%  Devuelve la hora actual.
 %USERNAME% Devuelve el nombre del usuario actual.

Por ello, si deseamos que nuestro prompt contenga la hora actual del sistema. La orden a ejecutar sería prompt %time%. O si por ejemplo queremos que el aspecto del prompt sea similar al mostrado por el bash de linux, en el que se muestra primero el nombre del usuario seguido por una arroba y el nombre de la máquina. El comando a utilizar sería el siguiente:

prompt %username%@%computername%

Si queremos que su aspecto sea aún más identico, mostrando los caracteres :~$ si el usuario es normal. O :~# si el usuario es administrador del sistema. El comando se debería de completar con:

prompt %username%@%computername%:~$$$S  para un usuario normal
prompt %username%@%computername%:~#$S  para un usuario administrador

 

prompt %username%@%computername%:~$$$S

para un usuario normal.

prompt %username%@%computername%:~#$S

para un usuario administrador.

El problema que existe con la utilización de este método, es que el comando configurará el prompt en su contexto local, por lo que tendrá un efecto inmediato; Pero únicamente hasta que se cierre la consola. En caso de cerrarse la ventana, el aspecto del prompt volverá a ser el inicial.

Por ello, si queremos que el aspecto del prompt, perdure para el resto de las sesiones deberemos de utilizar uno de los métodos siguientes:

  • Utilizar interfaz de usuario para modificación permanente

En primer lugar, deberemos de acceder hasta las variables de entorno dentro de las propiedades del sistema. Para ello iremos al panel de control -> Sistema y seguridad -> Sistema -> Configuración avanzada del sistema -> variables de entorno. Otro sistema, tal vez más sencillo, sería ejecutando el comando SYSDM.CPL y presionar sobre opciones avanzadas -> Variables de entorno.

El aspecto de la ventana, sería algo parecido al mostrado:

Una vez en ella, presionaremos sobre el botón    Nueva…   A continuación escribiremos, como Nombre de la variable: PROMPT y como valor de la variable, el formato que tengamos que este tenga, siguiendo las normas anteriormente indicadas. De este modo que si quisiéramos que tuviera el formato de bash con modo administrador, la forma sería la siguiente:

prompt gui

Presionaremos a continuación en Aceptar. Con ello, habremos creando una variable de entorno de usuario denominado PROMPT que modificará la inicial del sistema. Teniendo por tanto el formato que nosotros hemos indicado.

Se puede comprobar que la modificación tiene un carácter inmediato, y su duración será continua, hasta el borrado o modificación de la variable de entorno creada.

  • Utilizar el comando setx para modificación permanente

Otro método para establecer la variable de entorno prompt de forma permanente es usar el comando SETX.

El comando setx crea o modifica variables de entorno para el usuario o para el sistema. Puede establecer variables basadas en argumentos, claves de registro o entrada de archivos.

De este modo, que si queremos crear la variable de entorno anterior, utilizando el comando setx el formato sería el siguiente:

setx PROMPT %username%@%computername%:~#$S

De este modo habremos creado una variable de entorno con esos valores, que será reflejada en el registro del sistema en la sección:

HKEY_CURRENT_USER\Environment

Si lo que queremos en cambio, es que la modificación del prompt se realice para todo el sistema. Se deberá de incluir el parámetro /M al final del comando. Quedando su aspecto del siguiente modo:

setx PROMPT %username%@%computername%:~#$S /M

Con ello habremos creado la variable de entorno en la sección:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session_Manager\Environment.

El aspecto en el registro del sistema, sería el siguiente:

registro prompt

Tal y como se puede imaginar. Otro método que podría ser igualmente válido, sería entrar en la sección del registro anteriormente elegida y crear las variables de ese mismo lugar. Aunque su método no se aconseja pues se debería de realizar de modo cauteloso, al modificar parámetros del registro que pueden afectar a la estabilidad del sistema.