web-dev-qa-db-ja.com

PowerShellで日付/時刻を出力する

ログのスクリプトのさまざまな場所に日付時刻を出力したいので、次のようにします。

$b = Get-Date
Write-Output "Backups complete at $b"

# more code here

$c = Get-Date
Write-Output "Backups complete at $c"

最新の日付/時刻を取得するには、アルファベットの複数の文字を使用する必要があります。

これを行う簡単な方法はありますか、それとももう一度使用するたびに日付を再確立する必要がありますか?

19
ErocM

現在の日時を変数に割り当てると、実行した瞬間の日時を取得しますGet-Date

新しい日付と時刻が必要になるたびに、もう一度実行する必要があります。変数の使用を避けることができます:

Write-Output "Backups complete at $(Get-Date)"
28
briantist

これを行う別の方法は、フォーマット文字列を使用することです。これをロギング目的で使用しているので、すべてのログメッセージのフォーマットを1か所で変更できるため、関数を作成することをお勧めします。

function Log-Message
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [string]$LogMessage
    )

    Write-Output ("{0} - {1}" -f (Get-Date), $LogMessage)
}

これで、次を使用して簡単なログを記録できます。

Log-Message "Starting Backups"
Log-Message "Backups Completed"

出力:

22.07.2016 08:31:15 - Starting Backups
22.07.2016 08:31:15 - Backups Completed
6
Martin Brandl