PowerShell – Customizar el prompt

PowerShell ofrece muchas maneras de hacernos felices y una de ellas es la customización de la consola 🙂

Hoy quiero compartir como customizar el prompt de nuestra consola para darle un toque más personalizado y/o diferente.

Así es como se ve por defecto:

Consola de PowerShell

Primeros pasos

Lo primero que me gustaría compartir es cómo hacer para poder modificar nuestro perfil en PowerShell, para ello, debemos situarnos en la ruta de nuestro perfil dentro de la carpeta documentos, ahí van a encontrar la carpeta WidowsPowerShell y dentro de ella, el archivo Microsoft.PowerShell_profile.ps1

En mi caso la ruta completa es: C:\Users\Victor\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Ahora bien, teniendo ubicado el archivo a modificar vamos a ver algunas cosas.

Primero debemos definir, por ejemplo, una función en donde poder ubicar nuestros cambios. Para ser consecuente, voy a generar una función llamada prompt, donde le voy a indicar que me devuelta (return) el símbolo numeral (o sharp):

function Prompt {
    return "#";
}

Si guardamos los cambios y ejecutamos una nueva consola de PowerShell vamos a ver lo siguiente:

Consola con el # como prompt

Ya con esto podemos hacer algunas modificaciones, como: * “>” * “–>”

O agregar una variable, de la siguiente manera utilizando la hora:

function Prompt {
    Write-Host ("[") -nonewline
    Write-Host (Get-Date -format HH:mm:ss) -nonewline
    Write-Host ("] #") -nonewline
    return " ";
}

Dejando el símbolo numeral, como separador (para que quede más ordenado).

Agregando colores

Teniendo la base anterior, podemos tomar la función y agregarle un poco de color y algún símbolo más:

function Prompt { Write-Host (“[“) -nonewline -foregroundcolor DarkGray Write-Host (Get-Date -format HH:mm:ss) -nonewline Write-Host (“] “) -nonewline -foregroundcolor DarkGray Write-Host ($PWD) -nonewline -foregroundcolor Green Write-Host (” “) -nonewline -foregroundcolor DarkGray Write-Host (“#”) -nonewline -foregroundcolor Yellow return ” “; }

Prompt con hora, ubicación y #

Cambiando el título de la ventana

También podemos hacerle cambios visuales al título de la ventana, como en este ejemplo, agregando mi nombre y la versión de PowerShell:

(Get-Host).UI.RawUI.WindowTitle =  "Victor" + " (v" + (Get-Host).Version + ")";

Título cambiado

Saludos,

Comments