Script de PowerShell 4 de Win Server 2012 para copiar, cambiar nombre y tocar un archivo

Script de PowerShell 4 de Win Server 2012 para copiar, cambiar nombre y tocar un archivo

Creé un script de PowerShell 4 para hacer una copia de seguridad del archivo VbaProject.OTM de Outlook 2013 copiándolo del directorio de producción a un directorio de copia de seguridad y agregando un sufijo de nombre de archivo con la fecha y hora actuales. La versión copiada tiene la fecha y hora de modificación de cuando se guardó VbaProject.OTM por primera vez. Pasé toda la mañana investigando publicaciones tratando de descubrir cómo cambiar la propiedad Fecha de modificación del archivo de respaldo a la fecha y hora actuales, pero todo lo que intenté terminó en mensajes de error. ¿Existe una forma sencilla de lograr esto?

# 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"

Hubo una pregunta similar sobre cómo crear un archivo vacío y establecer la propiedad de fecha. La solución a mi pregunta también estaba en una sola línea, pero no es fácil de encontrar. El título de la otra pregunta no hace que sea obvio que la solución se pueda encontrar en ella, ya que necesito cambiar la fecha de un archivo existente, no crear un archivo nuevo. Árbitro: ¿Equivalente al `touch` de Linux para crear un archivo vacío con PowerShell?.

Respuesta1

Con crédito a @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

información relacionada