Я играю со скриптами PowerShell, и они отлично работают. Однако мне интересно, есть ли способ также показать все запущенные команды, как если бы вы вручную вводили их сами. Это было бы похоже на «включение эха» в пакетных файлах. Я посмотрел на аргументы командной строки PowerShell, на командлеты, но не нашел ничего очевидного. Спасибо!
Следующая команда выведет каждую строку скрипта в Write-Debug-
Set-PSDebug -Trace 1
Из man Set-PSDebug
Если для параметра Trace установлено значение 1, каждая строка скрипта отслеживается по мере ее выполнения. Если для параметра установлено значение 2, также отслеживаются присвоения переменных, вызовы функций и вызовы сценариев. Если указан параметр Step, перед выполнением каждой строки скрипта выводится запрос.
Где я использовал echo on
в CMD я сейчас использую Write-Verbose
и Set-PSDebug -Step
вместо. Они не такие, но они более мощные, если ими умело пользоваться.
Уродливо:
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 >
Проблема с вышесказанным в том, что если у вас есть такие многострочные команды:
foreach($proc in $procs){
$proc.processname
}
Вышеупомянутое не удастся с моим примером выше, если он будет помещен в foo.ps1 с такой структурой ...
help about_History
Расскажу обо всех командах и
Get-History [options]
вернет вам полный список для управления \ отображением и т. д.