Предварительная отметка времени для каждой строки вывода команды или исполняемого файла
Я хочу добавить метку времени к каждой строке вывода команды. Например:
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')] $_"}}