Win Server 2012 PowerShell-4-Skript zum Kopieren, Umbenennen und Berühren einer Datei

Win Server 2012 PowerShell-4-Skript zum Kopieren, Umbenennen und Berühren einer Datei

Ich habe ein PowerShell-4-Skript erstellt, um die Outlook 2013-Datei VbaProject.OTM zu sichern, indem ich sie aus dem Produktionsverzeichnis in ein Sicherungsverzeichnis kopiert und ein Dateinamensuffix mit dem aktuellen Datum und der aktuellen Uhrzeit hinzugefügt habe. Die kopierte Version hat das Änderungsdatum und die Änderungszeit, als VbaProject.OTM zum ersten Mal gespeichert wurde. Ich habe den ganzen Morgen damit verbracht, Beiträge zu recherchieren und herauszufinden, wie ich die Eigenschaft „Änderungsdatum“ der Sicherungsdatei auf das aktuelle Datum und die aktuelle Uhrzeit ändern kann, aber alles, was ich versucht habe, endete nur mit Fehlermeldungen. Gibt es eine einfache Möglichkeit, dies zu erreichen?

# FD_VBA_Backup.ps1
$date = get-date -format "MMddyyyy HHmm"
$fnft = "VbaProject - " + $date + ".OTM"
$source = "C:\Users\OCCReportManager\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM"
$dest = "D:\FD Automation VBA Backups\" + $fnft
copy-item $source $dest  # results in eg. "VbaProject - 07202015 0936.OTM"

Es gab eine ähnliche Frage zum Erstellen einer leeren Datei und Festlegen der Datumseigenschaft. Die Lösung für meine Frage stand ebenfalls in einer einzigen Zeile, war aber nicht leicht zu finden. Aus dem Titel der anderen Frage geht nicht hervor, dass die Lösung darin zu finden ist, da ich das Datum einer vorhandenen Datei ändern und keine neue Datei erstellen muss. Ref: Äquivalent zu Linux „touch“, um mit PowerShell eine leere Datei zu erstellen?.

Antwort1

Mit Dank an @DavidPostill:

# FD_VBA_Backup.ps1
$date = get-date -format "MMddyyyy HHmm"
$fnft = "VbaProject - " + $date + ".OTM"
$source = "C:\Users\OCCReportManager\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM"
$dest = "D:\FD Automation VBA Backups\" + $fnft
copy-item $source $dest  # results in eg. "VbaProject - 07202015 0936.OTM"

(Get-ChildItem $dest).LastWriteTime = Get-Date

verwandte Informationen