Вывести дату / время в PowerShell

Я хочу вывести дату и время в разных местах в моем скрипте для ведения журнала, поэтому я делаю это:

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

# more code here

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

Мне нужно использовать несколько букв алфавита, чтобы получить самую последнюю дату / время.

Есть ли более простой способ сделать это, или мне нужно восстанавливать дату каждый раз, когда я хочу использовать ее снова?

2 ответа

Когда вы назначаете текущую дату и время переменной, вы фиксируете дату и время в тот момент, когда вы запустили Get-Date,

Каждый раз, когда вы хотите новую дату и время, вам нужно запустить его снова. Вы можете избежать использования переменной:

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

Другой способ сделать это - использовать строку формата, и, поскольку вы используете ее для целей регистрации, я бы порекомендовал вам написать функцию, потому что это позволит вам изменить формат всех сообщений журнала в одном месте:

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

Вот простой 1, который позволяет вам форматировать дату и время в желаемом формате.

$currentTime = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
Write-Host $currentTime " Other log string message "

ВЫХОД

17-Aug-2020 10:06:19  other log string message 
Другие вопросы по тегам