PowerShell "echo on"

Это дубликат https://serverfault.com/info/102098/powershell-script-showing-commands-run. Я подумал, что было бы более уместно задавать этот вопрос здесь.

Я играю с скриптами PowerShell, и они отлично работают. Тем не менее, мне интересно, есть ли способ показать все команды, которые были запущены, так же, как если бы вы вручную вводили их в себя. Это будет похоже на "echo on" в пакетных файлах. Я посмотрел на аргументы командной строки PowerShell, командлеты, но я не нашел ничего очевидного.

Ответы

Ответ 1

Start-Transcript не выводит никакого вывода exe. Это шоу-стоппер для меня. Мне очень жаль это говорить, но лучший способ, который я нашел для этого, - это:

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

Это захватывает все AFAICT.

Ответ 2

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".

Примечание № 1: он записывает только записи, записанные в выходной поток главной консоли, а не предупреждение/ошибка/отладка.

Примечание # 2: если вам нужно записать собственные консольные приложения, вам понадобится небольшое обходное решение

Ответ 3

Я добавил -verbose для желаемых команд. Например.

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