Establece un punto de interrupción en una línea, un comando o una variable.

Sintaxis

Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {<Read> | <Write> | <ReadWrite>}] [-Action <scriptblock>] [<CommonParameters>]

Descripción

El cmdlet Set-PSBreakpoint establece un punto de interrupción en un script o cualquier comando que se ejecute en la sesión actual. Puede utilizar Set-PSBreakpoint para establecer un punto de interrupción antes de la ejecución de un script o comando o durante la depuración cuando se detiene en otro punto de interrupción.

Nota: Set-PSBreakpoint no puede establecer un punto de interrupción en un equipo remoto. Para depurar un script en un equipo remoto, copie el script en el equipo local y, a continuación, depúrelo localmente.

Cada comando Set-PSBreakpoint crea uno de estos tres tipos de puntos de interrupción:

-- Punto de interrupción de línea: establece puntos de interrupción en determinadas coordenadas de línea y columna.

-- Punto de interrupción de comando: establece puntos de interrupción en comandos y funciones.

-- Punto de interrupción de variable: establece puntos de interrupción en variables.

Puede establecer un punto de interrupción en varias líneas, comandos o variables de un solo comando Set-PSBreakpoint, pero cada comando Set-PSBreakpoint establece solo un tipo de punto de interrupción.

En un punto de interrupción, Windows PowerShell deja de ejecutarse temporalmente y pasa el control al depurador. El símbolo del sistema cambia a "DBG>" y el usuario dispone de diversos comandos del depurador. Sin embargo, se puede utilizar el parámetro Action para especificar una respuesta alternativa, como condiciones para el punto de interrupción o instrucciones para llevar a cabo tareas adicionales, como tareas de registro o diagnóstico.

El cmdlet Set-PSBreakpoint es uno de los diversos cmdlets diseñados para depurar los scripts de Windows PowerShell. Para obtener más información acerca del depurador de Windows PowerShell, vea about_Debuggers.

Parámetros

-Action <scriptblock>

Especifica los comandos que se ejecutan en cada punto de interrupción, en lugar de interrumpir. Escriba un bloque de script que contenga los comandos. Puede utilizar este parámetro para establecer puntos de interrupción condicionales o realizar otras tareas, como pruebas o registros.

Si se omite este parámetro o no se especifica ninguna acción, la ejecución se detiene en el punto de interrupción y se inicia el depurador.

Cuando se utiliza el parámetro Action, el bloque de script de Action se ejecuta en cada punto de interrupción. La ejecución no se detiene a menos que el bloque de script incluya la palabra clave Break. Si se utiliza la palabra clave Continue en el bloque de script, la ejecución se reanuda hasta el siguiente punto de interrupción.

Para obtener más información, vea about_Script_Blocks, about_Break y about_Continue.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Column <int>

Especifica el número de la columna en el archivo de script donde se detiene la ejecución. Escriba solo un número de columna. El valor predeterminado es la columna 1.

El valor de Column se utiliza con el valor del parámetro Line para especificar el punto de interrupción. Si el parámetro Line especifica varias líneas, el parámetro Column establece un punto de interrupción en la columna especificada en cada una de las líneas especificadas. Windows PowerShell deja de ejecutarse antes de la instrucción o expresión que incluye el carácter en la línea y la posición de columna especificadas.

Las columnas se cuentan a partir del margen superior izquierdo empezando por el número de columna 1 (no 0). Si se especifica una columna que no existe en el script, no se declarará un error pero el punto de interrupción no se ejecutará nunca.

¿Requerido?

false

¿Posición?

3

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Command <string[]>

Establece un punto de interrupción de comando. Escriba nombres de comando, como "Get-Process" o nombres de función. Se permite el uso de caracteres comodín.

La ejecución se detiene justo antes de que se ejecute cada instancia de cada comando. Si el comando es una función, la ejecución se detiene cada vez que se llama a la función y en cada sección BEGIN, PROCESS y END.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

true

-Line <Int32[]>

Establece un punto de interrupción de línea en un script. Escriba uno o varios números de línea, separados por comas. Windows PowerShell se detiene inmediatamente antes de que se ejecute la instrucción que comienza en cada una de las líneas especificadas.

Las líneas se cuentan a partir del margen superior izquierdo del archivo de script empezando por el número de línea 1 (no 0). Si se especifica una línea en blanco, la ejecución se detendrá antes de la siguiente línea que no esté en blanco. Si la línea está fuera del intervalo, no se alcanzará nunca el punto de interrupción.

¿Requerido?

true

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Mode <VariableAccessMode>

Determina el modo de acceso que desencadena los puntos de interrupción de variables. El valor predeterminado es Write.

Este parámetro solo es válido cuando se usa el parámetro Variable en el comando. El modo se aplica a todos los puntos de interrupción establecidos en el comando.

Los valores válidos son:

-- Write: la ejecución se detiene inmediatamente antes de que se escriba un nuevo valor en la variable.

-- Read: la ejecución se detiene cuando se lee la variable, es decir, cuando se obtiene acceso a su valor con el fin de asignarlo, mostrarlo o utilizarlo. En modo de lectura, la ejecución no se detiene cuando cambia el valor de la variable.

-- ReadWrite: la ejecución se detiene cuando se lee la variable o se escribe en ella.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Script <string[]>

Establece un punto de interrupción en cada uno de los archivos de script especificados. Escriba la ruta de acceso y el nombre de uno o varios archivos de script. Si los archivos están en el directorio actual, se puede omitir la ruta de acceso. Se permite el uso de caracteres comodín.

De forma predeterminada, los puntos de interrupción de variable y comando se establecen en cualquier comando que se ejecute en la sesión actual. Este parámetro es obligatorio únicamente en el caso de establecer un punto de interrupción de línea.

¿Requerido?

false

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

true

-Variable <string[]>

Establece un punto de interrupción de variable. Especifique una lista delimitada por comas de variables sin signos de dólar ($).

Utilice los parámetros Mode para determinar el modo de acceso que desencadena los puntos de interrupción. El modo predeterminado, Write, detiene la ejecución justo antes de que se escriba un nuevo valor en la variable.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

Ninguno

No se pueden canalizar entradas a Set-PSBreakpoint.

Salidas

Objeto de punto de interrupción (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)

Set-PSBreakpoint devuelve un objeto que representa cada punto de interrupción que establece.

Notas

Set-PSBreakpoint no puede establecer un punto de interrupción en un equipo remoto. Para depurar un script en un equipo remoto, copie el script en el equipo local y, a continuación, depúrelo localmente.

Al establecer un punto de interrupción en más de una línea, comando o variable, Set-PSBreakpoint genera un objeto de punto de interrupción para cada entrada.

Al establecer un punto de interrupción en una función o variable en el símbolo del sistema, se puede establecerlo antes o después de crear la función o variable.

Ejemplo 1

C:\PS>set-psbreakpoint -script sample.ps1 -line 5

Column     : 0
Line       : 5
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descripción
-----------
Este comando establece un punto de interrupción en la línea 5 del script Sample.ps1. Como resultado, cuando se ejecute el script, la ejecución se detendrá inmediatamente antes de que se ejecute la línea 5.

Al establecer un nuevo punto de interrupción por número de línea, el cmdlet Set-PSBreakpoint genera un objeto de punto de interrupción de línea (System.Management.Automation.LineBreakpoint) que incluye el identificador del punto de interrupción así como el número de veces que se alcanza, tal y como se muestra en el siguiente resultado de ejemplo.






Ejemplo 2

C:\PS>set-psbreakpoint -command Increment -script sample.ps1

Command    : Increment
Action     :
Enabled    : True
HitCount   : 0
Id         : 1
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descripción
-----------
Este comando crea un punto de interrupción de comando en la función Increment del cmdlet Sample.ps1. El script deja de ejecutarse inmediatamente antes de cada llamada a la función especificada.

El resultado es un objeto de punto de interrupción de comando. Antes de que se ejecute el script, el valor de la propiedad HitCount es 0.






Ejemplo 3

C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite

Descripción
-----------
Este comando establece un punto de interrupción en la variable Server del script Sample.ps1. Utiliza el parámetro Mode con el valor ReadWrite para que se detenga la ejecución si el valor de la variable es Read y justo antes de que cambie el valor.






Ejemplo 4

C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*"

Descripción
-----------
Este comando establece un punto de interrupción en cada comando del script Sample.ps1 que comienza con "write", como "write-host".






Ejemplo 5

C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest `
  -action { (if $disk -gt 2) { break } }

Descripción
-----------
Este comando detiene la ejecución en la función DiskTest del script Test.ps1 únicamente cuando el valor de la variable $disk es mayor que 2.

Utiliza el cmdlet Set-PSBreakpoint para establecer un punto de interrupción de comando en la función DiskTest. El valor de la acción es un bloque de script que comprueba el valor de la variable $disk en la función.

La acción utiliza la palabra clave BREAK para detener la ejecución si se cumple la condición. La palabra clave alternativa (y predeterminada) es CONTINUE.






Ejemplo 6

C:\PS>set-psbreakpoint -command checkpoint-computer

Id       : 0
Command  : checkpoint-computer
Enabled  : True
HitCount : 0
Action   :

C:\PS> function CheckLog {
>> get-eventlog -log Application | 
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
C:\PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG:  Function breakpoint on 'prompt:Checklog'
C:\PS>>>

Descripción
-----------
Este comando establece un punto de interrupción en la función CheckLog. Dado que el comando no especifica un script, el punto de interrupción se establece en cualquier elemento que se ejecute en la sesión actual. El depurador se interrumpe cuando se llama a la función pero no cuando se declara.






Ejemplo 7

C:\PS>set-psbreakpoint -script sample.ps1 -line 1, 14, 19 -column 2 -action {&(log.ps1)}

Column     : 2
Line       : 1
Action     :
Enabled    : True
HitCount   : 0
Id         : 6
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 14
Action     :
Enabled    : True
HitCount   : 0
Id         : 7
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 19
Action     :
Enabled    : True
HitCount   : 0
Id         : 8
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descripción
-----------
Este comando establece tres puntos de interrupción de línea en el script Sample.ps1. Establece un punto de interrupción en la columna 2 en cada una de las líneas especificadas en el script. La acción especificada en el parámetro Action se aplica a todos los puntos de interrupción.






Vea también




Tabla de contenido