Предварительная отметка времени для каждой строки вывода команды или исполняемого файла

Я хочу добавить метку времени к каждой строке вывода команды. Например:

foo
bar
baz

станет:

[2011-12-13 12:20:38] foo
[2011-12-13 12:21:32] bar
[2011-12-13 12:22:20] baz

где префикс времени - это время, когда строка была напечатана. Как я могу добиться этого с PowerShell?

2 ответа

Решение

Предполагая, что ваша команда является внешней командой с именем fooвы можете передать его вывод через ForEach-Object, чтобы добавить метку времени:

foo | ForEach-Object { "$(Get-Date -Format "[yyyy-MM-dd HH:mm:ss]") $_" }

Вы можете сделать это именованным столбцом с чем-то вроде:

x.exe |Select @{Name='XTime';Expression={"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] $_"}}
Другие вопросы по тегам