Je veux afficher l'heure de la date à divers endroits dans mon script pour la journalisation, donc je fais ceci:
$b = Get-Date
Write-Output "Backups complete at $b"
# more code here
$c = Get-Date
Write-Output "Backups complete at $c"
Je dois utiliser plusieurs lettres de l'alphabet pour obtenir la date/heure la plus récente.
Existe-t-il un moyen plus simple de le faire ou dois-je rétablir la date à chaque fois que je souhaite la réutiliser?
Une fois que vous avez affecté la date/heure actuelle à une variable, vous capturez la date et l'heure au moment où vous avez exécuté Get-Date
.
Chaque fois que vous voulez une nouvelle date et heure, vous devez la réexécuter. Vous pourriez éviter d'utiliser une variable:
Write-Output "Backups complete at $(Get-Date)"
Une autre façon de le faire est d'utiliser une chaîne de formatage et comme vous l'utilisez à des fins de journalisation, je vous recommande d'écrire une fonction car cela vous permettra de modifier le format de tous les messages de journal en un seul endroit:
function Log-Message
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true, Position=0)]
[string]$LogMessage
)
Write-Output ("{0} - {1}" -f (Get-Date), $LogMessage)
}
Vous pouvez maintenant vous connecter simplement en utilisant:
Log-Message "Starting Backups"
Log-Message "Backups Completed"
Sortie:
22.07.2016 08:31:15 - Starting Backups
22.07.2016 08:31:15 - Backups Completed