2016-07-21 14 views
6

ich das Datum Zeit an verschiedenen Orten in meinem Skript ausgegeben werden soll für die Anmeldung so mache ich das:Ausgabe Datum/Uhrzeit in Powershell

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

# more code here 

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

ich mehrere Buchstaben des Alphabets zu verwenden, habe zu bekommen das aktuellste Datum/Uhrzeit.

Gibt es einen einfacheren Weg dies zu tun oder muss ich das Datum jedes Mal neu erstellen, wenn ich es wieder benutzen möchte?

Antwort

12

Sobald Sie die aktuelle Datetime einer Variablen zugewiesen haben, erfassen Sie das Datum und die Uhrzeit in dem Moment, in dem Sie Get-Date ausgeführt haben.

Jedes Mal, wenn Sie ein neues Datum und eine neue Uhrzeit wünschen, müssen Sie es erneut ausführen. Sie könnten vermeiden, dass eine Variable:

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

ok Ich habe es ohne die() versucht und es hat nicht funktioniert. Ich verstehe es jetzt. Vielen Dank! – ErocM

+3

* hust * Daten sortierbar machen mit Jahr-Monat-Tag-Stunde-Minute-Sekunde Bestellung 'Write-Output" Backups abgeschlossen bei $ (Get-Date -Format u) "' * hust * – TessellatingHeckler

4

Ein anderer Weg, dies zu tun, ist eine Format-String verwendet und da Sie diese verwenden für Zwecke der Anmeldung Ich würde Ihnen empfehlen, eine Funktion zu schreiben, da dies ermöglicht es Ihnen, das Format zu ändern alle Log-Nachrichten in einem einzigen Ort:

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

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

Jetzt können Sie einfach Protokoll verwenden:

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

Ausgang:

22.07.2016 08:31:15 - Starting Backups 
22.07.2016 08:31:15 - Backups Completed