Script do PowerShell, mostrando comandos executados

24

Estou brincando com os scripts do PowerShell e eles estão funcionando muito bem. No entanto, eu estou querendo saber se há alguma maneira de mostrar também todos os comandos que foram executados, como se você estivesse digitando-os manualmente em si mesmo. Isso seria semelhante a "echo on" em arquivos em lote. Eu olhei para os argumentos de linha de comando do PowerShell, os cmdlets, mas não encontrei nada óbvio. Obrigado!

    
por Nelson Rothermel 13.01.2010 / 00:27

4 respostas

31

O seguinte comando irá mostrar cada linha do script para Write-Debug -

Set-PSDebug -Trace 1

De man Set-PSDebug

When the Trace parameter is set to 1, each line of script is traced as it is executed. When the parameter is set to 2, variable assignments, function calls, and script calls are also traced. If the Step parameter is specified, you are prompted before each line of the script is executed.

    
por 16.02.2015 / 04:53
2

Onde usei echo on no CMD, agora uso Write-Verbose e Set-PSDebug -Step . Eles não são os mesmos, mas são mais poderosos se empunhados com habilidade.

    
por 23.02.2010 / 17:16
1

Feio:

PS > get-content foo.ps1|foreach-object{$_;invoke-expression "$_"}
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
powershell
PS > get-content foo.ps1
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
PS >

O problema com o acima é que, se você tiver comandos multi-linha como este:

foreach($proc in $procs){
  $proc.processname
}

O acima irá falhar com o meu exemplo acima, se for colocado em foo.ps1 com essa estrutura ...

    
por 16.01.2010 / 00:29
1
help about_History 

Vai falar sobre todos os comandos e

Get-History [options]  

retornará a lista completa para você manipular \ display etc.

    
por 13.01.2010 / 00:32