Tipos de salida de cmdletTypes of cmdlet output

PowerShell proporciona varios métodos a los que pueden llamar los cmdlets para generar la salida.PowerShell provides several methods that can be called by cmdlets to generate output. Estos métodos usan una operación específica para escribir su salida en un flujo de datos concreto, como el flujo de datos correcto o el flujo de datos de error.These methods use a specific operation to write their output to a specific data stream, such as the success data stream or the error data stream. En este artículo se describen los tipos de resultados y los métodos que se usan para generarlos.This article describes the types of output and the methods used to generate them.

Tipos de salidaTypes of output

Salida correctaSuccess output

Los cmdlets pueden notificar el éxito devolviendo un objeto que puede ser procesado por el siguiente comando en la canalización.Cmdlets can report success by returning an object that can be processed by the next command in the pipeline. Después de que el cmdlet haya realizado correctamente su acción, el cmdlet llama al método System. Management. Automation. cmdlet. writeObject .After the cmdlet has successfully performed its action, the cmdlet calls the System.Management.Automation.Cmdlet.WriteObject method. Se recomienda llamar a este método en lugar de a los métodos System. Console. WriteLine o System. Management. Automation. host. PSHostUserInterface. WriteLine .We recommend that you call this method instead of the System.Console.WriteLine or System.Management.Automation.Host.PSHostUserInterface.WriteLine methods.

Puede proporcionar un parámetro de modificador Passthru para cmdlets que normalmente no devuelven objetos.You can provide a PassThru switch parameter for cmdlets that do not typically return objects. Cuando se especifica el parámetro de modificador Passthru en la línea de comandos, se pide al cmdlet que devuelva un objeto.When the PassThru switch parameter is specified at the command line, the cmdlet is asked to return an object. Para ver un ejemplo de un cmdlet que tiene un parámetro Passthru , consulte Add-History.For an example of a cmdlet that has a PassThru parameter, see Add-History.

Salida de errorError output

Los cmdlets pueden informar de errores.Cmdlets can report errors. Cuando se produce un error de terminación, el cmdlet produce una excepción.When a terminating error occurs, the cmdlet throws an exception. 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.When a non-terminating error occurs, the cmdlet calls the System.Management.Automation.Provider.CmdletProvider.WriteError method to send an error record to the error data stream. Para obtener más información sobre los informes de errores, vea conceptos de informes de errores.For more information about error reporting, see Error Reporting Concepts.

Salida detalladaVerbose output

Los cmdlets pueden proporcionar información útil mientras el cmdlet procesa correctamente los registros llamando al método System. Management. Automation. cmdlet. WriteVerbose .Cmdlets can provide useful information to you while the cmdlet is correctly processing records by calling the System.Management.Automation.Cmdlet.WriteVerbose method. El método genera mensajes detallados que indican cómo se va a continuar la acción.The method generates verbose messages that indicate how the action is proceeding.

De forma predeterminada, los mensajes detallados no se muestran.By default, verbose messages are not displayed. Puede especificar el parámetro verbose cuando se ejecuta el cmdlet para mostrar estos mensajes.You can specify the Verbose parameter when the cmdlet is run to display these messages. Verbose es un parámetro común que está disponible para todos los cmdlets.Verbose is a common parameter that is available to all cmdlets.

Salida de progresoProgress output

Los cmdlets pueden proporcionar información de progreso cuando el cmdlet realiza tareas que tardan mucho tiempo en completarse, como copiar un directorio de forma recursiva.Cmdlets can provide progress information to you when the cmdlet is performing tasks that take a long time to complete, such as copying a directory recursively. Para mostrar la información de progreso, el cmdlet llama al método System. Management. Automation. cmdlet. WriteProgress .To display progress information the cmdlet calls the System.Management.Automation.Cmdlet.WriteProgress method.

Salida de depuraciónDebug output

Los cmdlets pueden proporcionar mensajes de depuración que son útiles para solucionar problemas del código de cmdlet.Cmdlets can provide debug messages that are helpful when troubleshooting the cmdlet code. Para mostrar la información de depuración, el cmdlet llama al método System. Management. Automation. cmdlet. WriteDebug .To display debug information the cmdlet calls the System.Management.Automation.Cmdlet.WriteDebug method.

De forma predeterminada, no se muestran los mensajes de depuración.By default, debug messages are not displayed. Puede especificar el parámetro Debug cuando se ejecuta el cmdlet para mostrar estos mensajes.You can specify the Debug parameter when the cmdlet is run to display these messages. Debug es un parámetro común que está disponible para todos los cmdlets.Debug is a common parameter that is available to all cmdlets.

Salida de advertenciaWarning output

Los cmdlets pueden mostrar mensajes de advertencia llamando al método System. Management. Automation. cmdlet. WriteWarning .Cmdlets can display warning messages by calling the System.Management.Automation.Cmdlet.WriteWarning method.

De forma predeterminada, se muestran los mensajes de advertencia.By default, warning messages are displayed. Sin embargo, puede configurar mensajes de advertencia mediante la $WarningPreference variable o mediante los parámetros detallados y de depuración cuando se llama al cmdlet.However, you can configure warning messages by using the $WarningPreference variable or by using the Verbose and Debug parameters when the cmdlet is called.

Mostrar resultadosDisplaying output

Para todas las llamadas de método de escritura, la presentación del contenido viene determinada por variables en tiempo de ejecución específicas.For all write-method calls, the content display is determined by specific runtime variables. La excepción es el método System. Management. Automation. cmdlet. writeObject .The exception is the System.Management.Automation.Cmdlet.WriteObject method. Mediante el uso de estas variables, puede realizar la llamada de escritura adecuada en el lugar correcto del código y no preocuparse por si se debe mostrar la salida.By using these variables, you can make the appropriate write call at the correct place in your code and not worry about when or if the output should be displayed.

Obtener acceso a la funcionalidad de salida de una aplicación hostAccessing the output functionality of a host application

También puede diseñar un cmdlet para acceder directamente a la funcionalidad de salida de una aplicación host a través del tiempo de ejecución de PowerShell.You can also design a cmdlet to directly access the output functionality of a host application through the PowerShell runtime. El uso de las API de host que proporciona PowerShell en lugar de System. Console o System. Windows. Forms garantiza que el cmdlet funcionará con varios hosts.Using the host APIs provided by PowerShell instead of System.Console or System.Windows.Forms ensures that your cmdlet will work with a variety of hosts. Por ejemplo: el host de consola de powershell.exe , el host gráfico powershell_ise.exe , el host de comunicación remota de PowerShell y los hosts de terceros.For example: the powershell.exe console host, the powershell_ise.exe graphical host, the PowerShell remoting host, and third-party hosts.

Vea tambiénSee also

Conceptos de los informes de erroresError Reporting Concepts

Información general del cmdletCmdlet Overview

Escribir un cmdlet de Windows PowerShellWriting a Windows PowerShell Cmdlet