web-dev-qa-db-fra.com

Afficher la date / l'heure dans PowerShell

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?

19
ErocM

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)"
28
briantist

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
6
Martin Brandl