2010-01-14 17 views
15

Esto es un duplicado de https://serverfault.com/questions/102098/powershell-script-showing-commands-run. Pensé que sería más apropiado hacer esta pregunta aquí.PowerShell "echo on"

Estoy jugando con las secuencias de comandos de PowerShell y están funcionando muy bien. Sin embargo, me pregunto si hay alguna forma de mostrar también todos los comandos que se ejecutaron, como si los estuvieras escribiendo manualmente en ti. Esto sería similar a "echo on" en los archivos por lotes. Miré los argumentos de línea de comandos de PowerShell, los cmdlets, pero no encontré nada obvio.

+0

Soy un programador, y me encanta PowerShell, pero creo que esta es una pregunta que no es de programación y pertenece a ServerFault. –

Respuesta

5

Start-Transcript no coge cualquier salida exe. Eso es un obstáculo para mí. No me gusta decirlo, pero la mejor manera que he encontrado para hacer esto es:

cmd /c powershell.exe -file c:\users\hillr\foo.ps1 > foo.log 

Esta captura todo AFAICT.

+6

Acabo de ver esto el otro día. http://blogs.msdn.com/powershell/archive/2010/01/04/workaround-for-start-transcript-on-native-processes.aspx No es ideal, pero si extrae la salida exe a Out-Default , será capturado –

+1

El problema es que tienes que rociar todo esto en tu script, donde sea que llames un EXE. Y si invoca la secuencia de comandos de otra persona que llama a un EXE, debe modificar su secuencia de comandos. Entonces sí, no ideal. :-) –

+0

Ah, el enlace de Andy probablemente explica por qué no estaba viendo mucho con la transcripción de inicio. Jugaré un poco más con eso mañana, junto con la idea de Keith (y la de Richard abajo). –

3
C:\workspaces\silverlight> start-transcript -? 

NAME 
    Start-Transcript 

SYNOPSIS 
    Creates a record of all or part of a Windows PowerShell session in a text file. 


SYNTAX 
    Start-Transcript [[-Path] <string>] [-Append] [-Force] [-NoClobber] [-Confirm] [-WhatIf] [<CommonParameters>] 


DESCRIPTION 
    The Start-Transcript cmdlet creates a record of all or part of a Windows PowerShell session in a text file. The transcript includes all command that the user 
    types and all output that appears on the console. 


RELATED LINKS 
    Online version: http://go.microsoft.com/fwlink/?LinkID=113408 
    Stop-Transcript 

REMARKS 
    To see the examples, type: "get-help Start-Transcript -examples". 
    For more information, type: "get-help Start-Transcript -detailed". 
    For technical information, type: "get-help Start-Transcript -full". 

Nota n. ° 1: solo registra las cosas escritas en la secuencia de salida de la consola principal, no en Warning/Error/Debug.

Nota # 2: si usted necesita para registrar las aplicaciones de consola nativos, you'll need a slight workaround

+2

También sugerí esto, pero Start-Transcript captura las otras transmisiones (excepto la secuencia de progreso). Simplemente no captura la salida EXE a menos que use el truco Out-Default al que Andy se refiere en cualquier lugar donde use un EXE. –

2

He añadido -verbose a los comandos deseados. P.ej.

Copy-Item c:\xxx d:\xxx -verbose