Вывести дату / время в 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