为命令或可执行文件的每一行输出添加时间戳
Prepending a timestamp to each line of output from a command or executable
我想在命令的每一行输出前加上一个时间戳。例如:
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 实现此目的?
假设您的命令是名为 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')] $_"}}
我想在命令的每一行输出前加上一个时间戳。例如:
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 实现此目的?
假设您的命令是名为 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')] $_"}}