Share via


Tipos de salida de cmdlet

PowerShell proporciona varios métodos a los que pueden llamar los cmdlets para generar la salida. Estos métodos usan una operación específica para escribir su salida en un flujo de datos específico, como el flujo de datos correcto o el flujo de datos de error. En este artículo se describen los tipos de salida y los métodos usados para generarlos.

Tipos de salida

Salida correcta

Los cmdlets pueden notificar el éxito devolviendo un objeto que el comando siguiente puede procesar en la canalización. Una vez que el cmdlet ha realizado correctamente su acción, llama al método System.Management.Automation.Cmdlet.WriteObject. Se recomienda llamar a este método en lugar de los métodos System.Console.WriteLine o System.Management.Automation.Host.PSHostUserInterface.WriteLine.

Puede proporcionar un parámetro de modificador PassThru para los cmdlets que normalmente no devuelven objetos. Cuando se especifica el parámetro de modificador PassThru en la línea de comandos, se pide al cmdlet que devuelva un objeto . Para obtener un ejemplo de un cmdlet que tiene un parámetro PassThru, vea Add-History.

Salida de error

Los cmdlets pueden notificar errores. Cuando se produce un error de terminación, el cmdlet produce una excepción. Cuando se produce un error de no terminación, el cmdlet llama al método System.Management.Automation.Provider.CmdletProvider.WriteError para enviar un registro de error al flujo de datos de error. Para obtener más información sobre los informes de errores, vea Conceptos de informes de errores.

Salida detallada

Los cmdlets pueden proporcionarle información útil mientras el cmdlet procesa correctamente los registros mediante una llamada al método System.Management.Automation.Cmdlet.WriteVerbose. El método genera mensajes detallados que indican cómo se va a continuar la acción.

De forma predeterminada, no se muestran los mensajes detallados. Puede especificar el parámetro Verbose cuando se ejecuta el cmdlet para mostrar estos mensajes. Verbose es un parámetro común que está disponible para todos los cmdlets.

Salida de progreso

Los cmdlets pueden proporcionarle información de progreso cuando el cmdlet realiza tareas que llevan mucho tiempo en completarse, como copiar un directorio de forma recursiva. Para mostrar información de progreso, el cmdlet llama al método System.Management.Automation.Cmdlet.WriteProgress.

Salida de depuración

Los cmdlets pueden proporcionar mensajes de depuración que son útiles al solucionar problemas del código del cmdlet. Para mostrar información de depuración, el cmdlet llama al método System.Management.Automation.Cmdlet.WriteDebug.

De forma predeterminada, no se muestran los mensajes de depuración. Puede especificar el parámetro Debug cuando se ejecuta el cmdlet para mostrar estos mensajes. Debug es un parámetro común que está disponible para todos los cmdlets.

Salida de advertencia

Los cmdlets pueden mostrar mensajes de advertencia llamando al método System.Management.Automation.Cmdlet.WriteWarning.

De forma predeterminada, se muestran los mensajes de advertencia. Sin embargo, puede configurar mensajes de advertencia mediante la variable o mediante los parámetros Verbose y Debug cuando se $WarningPreference llama al cmdlet.

Mostrar la salida

Para todas las llamadas de método de escritura, la presentación de contenido viene determinada por variables en tiempo de ejecución específicas. La excepción es el método System.Management.Automation.Cmdlet.WriteObject. Con estas variables, puede realizar la llamada de escritura adecuada en el lugar correcto del código y no preocuparse por cuándo o si se debe mostrar la salida.

Acceso a la funcionalidad de salida de una aplicación host

También puede diseñar un cmdlet para acceder directamente a la funcionalidad de salida de una aplicación host a través del entorno de ejecución de PowerShell. Uso de las API de host proporcionadas por PowerShell en lugar de System.Console o System.Windows. Forms garantiza que el cmdlet funcionará con una variedad de hosts. Por ejemplo: el hostpowershell.exe consola,powershell_ise.exehost gráfico, el host de comunicación remota de PowerShell y hosts de terceros.

Consulte también

Conceptos de los informes de errores

Información general del cmdlet

Escribir un cmdlet de Windows PowerShell