Я создал скрипт PowerShell 4 для резервного копирования файла Outlook 2013 VbaProject.OTM, скопировав его из рабочего каталога в резервный каталог и добавив суффикс текущей даты и времени в качестве имени файла. Скопированная версия имеет измененную дату и время первого сохранения VbaProject.OTM. Я провел все утро, изучая посты, пытаясь выяснить, как изменить свойство Date Modified файла резервной копии на текущую дату и время, но все, что я пробовал, заканчивалось сообщениями об ошибках. Есть ли простой способ сделать это?
# 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"
Был похожий вопрос о том, как создать пустой файл и задать свойство даты. Решение моего вопроса также было там в одной строке, но его было нелегко найти. Заголовок другого вопроса не делает очевидным, что решение можно найти внутри, так как мне нужно изменить дату в существующем файле, а не создать новый файл. Ссылка: Эквивалент `touch` в Linux для создания пустого файла с помощью PowerShell?.
решение1
С благодарностью @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