Está en la página 1de 5

TEMA

about_Prompts
DESCRIPCIN BREVE
Describe la funcin Prompt y muestra cmo crear una funcin
Prompt personalizada.
DESCRIPCIN DETALLADA
El smbolo del sistema de Windows PowerShell indica que Windows
PowerShell est listo para ejecutar un comando:
PS C:\>
La funcin Prompt determina el smbolo del sistema de Windows
PowerShell. Puede personalizar el smbolo del sistema creando su
propia funcin Prompt. A continuacin, podr guardar esta funcin
en su perfil de Windows PowerShell.
Funcin Prompt
La funcin Prompt determina la apariencia del smbolo del
sistema de Windows PowerShell. Windows PowerShell incluye una
funcin Prompt integrada, pero puede invalidarla definiendo su
propia funcin Prompt.
La funcin Prompt tiene la sintaxis siguiente:
function prompt { <cuerpo de la funcin> }
La funcin Prompt debe devolver un objeto, normalmente una
cadena. Se recomienda que devuelva una cadena o un objeto con
formato de cadena. La cadena debe caber en una lnea de 80
caracteres.
Por ejemplo:
PS C:\> function prompt {"Hola a todos > "}
Hola a todos >
Al igual que todas las funciones, la funcin Prompt se almacena
en la unidad Function:. Para mostrar el cdigo en la funcin
Prompt actual, escriba:
(get-item function:prompt).definition
Este comando utiliza el cmdlet Get-Item para mostrar el
elemento Prompt en la unidad Function:. A continuacin, utiliza
la notacin de puntos para mostrar el valor de la propiedad
Definition de la funcin Prompt.
Smbolo del sistema predeterminado

El smbolo del sistema predeterminado de Windows PowerShell es:


PS>
Este smbolo del sistema aparece nicamente cuando la funcin
Prompt genera un error o no devuelve una cadena u objeto.
PS C:\> function prompt {$null}
PS>
Dado que Windows PowerShell incluye un smbolo del sistema
integrado, normalmente no se ve el smbolo del sistema
predeterminado hasta que se escriba una funcin Prompt
personalizada.
Smbolo del sistema integrado
Windows PowerShell incluye una funcin Prompt integrada que
crea los smbolos del sistema que resultan familiares. La
funcin Prompt integrada es:
function prompt
{
$(if (test-path variable:/PSDebugContext) { '[DBG]: ' }
else { '' }) + 'PS ' + $(Get-Location) `
+ $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
}
La funcin utiliza el cmdlet Test-Path para determinar si se ha
rellenado la variable automtica $PSDebugContext. En caso
afirmativo, se est en modo de depuracin y se agrega "[DBG]"
al smbolo del sistema:
[DBG] PS C:\ps-test>
Si no se ha rellenado la variable $PSDebugContext, la funcin
agrega "PS" al smbolo del sistema. Adems, la funcin usa el
cmdlet Get-Location para obtener la ubicacin actual del
directorio del sistema de archivos. A continuacin, agrega un
corchete angular de cierre (>). Por ejemplo:
PS C:\ps-test>
En el caso de un smbolo del sistema anidado, la funcin agrega
dos corchetes angulares (>>) al smbolo del sistema. (En el
caso de un smbolo del sistema anidado, el valor de la variable
automtica $NestedPromptLevel es mayor que 1.)
Por ejemplo, cuando est depurando en un smbolo del sistema

anidado, el smbolo del sistema es similar al que figura a


continuacin:
[DBG] PS C:\ps-test>>>
El cmdlet Enter-PSSession antepone el nombre del equipo remoto
a la funcin Prompt actual. Cuando se usa el cmdlet
Enter-PSSession para iniciar una sesin con un equipo remoto,
el smbolo del sistema cambia de modo que incluya el nombre del
equipo remoto. Por ejemplo:
PS Hola a todos> Enter-PSSession Servidor01
[Servidor01]: PS Hola a todos>
Es posible que otras aplicaciones host de Windows PowerShell y
shells alternativos tengan sus propios smbolos del sistema
personalizados.
Para obtener ms informacin sobre las variables automticas
$PSDebugContext y $NestedPromptLevel, vea about_Automatic_Variables.
Personalizar el smbolo del sistema
Para personalizar el smbolo del sistema, escriba una nueva
funcin Prompt. La funcin no est protegida, por lo que puede
sobrescribirla.
Para escribir una funcin Prompt, escriba:
function prompt { }
A continuacin, entre las llaves, escriba los comandos o la
cadena que cree el smbolo del sistema.
Por ejemplo, el siguiente smbolo del sistema incluye el nombre
del equipo:
function prompt {"PS [$env:COMPUTERNAME]> "}
En el equipo Servidor01, el smbolo del sistema es similar al
que figura a continuacin:
PS [Servidor01] >
La siguiente funcin Prompt incluye la fecha y la hora actuales:
function prompt {"$(get-date)> "}
El smbolo del sistema es similar al que figura a continuacin:

01/01/2008 17:49:47>
Asimismo, puede modificar la funcin Prompt predeterminada:
function prompt
{
$(if (test-path variable:/PSDebugContext) { '[DBG]: ' }
else { '' }) + "$(get-date)" `
+ $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> '
}
Por ejemplo, la siguiente funcin Prompt modificada agrega
"[ADMIN]:" al smbolo del sistema integrado de Windows
PowerShell cuando se abre Windows PowerShell con la opcin
"Ejecutar como administrador":
function prompt
{
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$(if (test-path variable:/PSDebugContext) { '[DBG]: ' }
elseif($principal.IsInRole([Security.Principal.WindowsBuiltInRole]
"Administrator"))
{ "[ADMIN]: " }
else { '' }) + 'PS ' + $(Get-Location) + $(if ($nestedpromptlevel
-ge 1) { '>>' }) + '> '
}

Cuando se inicia Windows PowerShell con la opcin "Ejecutar


como administrador", aparece un smbolo del sistema similar al
siguiente:
[ADMIN]: PS C:\ps-test>
La siguiente funcin Prompt muestra el identificador de
historial del siguiente comando. Para ver el historial de
comandos, use el cmdlet Get-History.
function prompt
{
# El signo arroba crea una matriz en caso de que exista
solo un elemento de historial.
$history = @(get-history)
if($history.Count -gt 0)
{
$lastItem = $history[$history.Count - 1]
$lastId = $lastItem.Id
}

$nextCommand = $lastId + 1
$currentDirectory = get-location
"PS: $nextCommand $currentDirectory >"
}

La siguiente funcin Prompt usa los cmdlets Write-Host y


Get-Random para crear un smbolo del sistema que cambia
aleatoriamente de color. Dado que Write-Host escribe en la
aplicacin host actual pero no devuelve ningn objeto, esta
funcin incluye una instruccin Return. Sin ella, Windows
PowerShell usa el smbolo del sistema predeterminado, "PS>".
function prompt
{
$color = get-random -min 1 -max 16
write-host ("PS " + $(get-location) +">") -nonewline -foregroundco
lor $color
return " "
}
Guardar el smbolo del sistema
Al igual que todas las funciones, la funcin Prompt se aplica
nicamente en la sesin actual. Si desea guardar la funcin
Prompt para las sesiones futuras, agrguela a sus perfiles de
Windows PowerShell. Para obtener ms informacin sobre los
perfiles, vea about_Profiles.
VEA TAMBIN
Get-Location
Enter-PSSession
Get-History
Get-Random
Write-Host
about_Profiles
about_Functions
about_Scopes
about_Debuggers
about_Automatic_Variables

También podría gustarte