Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
If I'm doing something long-running, and I want it to know when various lines of output are generated, assuming they are being sent to STDOUT (something PSH is NOT good at), here's a quick way to preface the output with a timestamp.
-Format allows us to pass a formatting parameter to Get-Date.
-AsObject returns the output as a series of PSCustomObjects instead of Strings.
-All outputs blank lines, which are normally excluded.
function Add-TimeStamp {
param (
[string]$Format = $null,
[switch]$AsObject,
[switch]$All
)
process {
$input | % {
if ([string]$_ -or $All) {
$object = [System.Object] | Select-Object -Property Time, String;
if ($Format) {
$object.Time = Get-Date -Format $format;
} else {
$object.Time = Get-Date;
}
$object.String = $_.ToString();
if ($AsObject) {
$object;
} else {
"$($object.Time)`t$($object.String)";
}
}
}
}
}