我创建了一个 PowerShell 4 脚本来备份 Outlook 2013 VbaProject.OTM 文件,方法是将其从生产目录复制到备份目录,并添加当前日期和时间的文件名后缀。复制的版本具有 VbaProject.OTM 首次保存时的修改日期和时间。我花了一上午的时间研究帖子,试图弄清楚如何将备份文件的修改日期属性更改为当前日期和时间,但我尝试的所有方法都以错误消息结束。有没有简单的方法可以实现这一点?
# 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"
有一个类似的问题,关于如何创建一个空文件并设置日期属性。我的问题的解决方案也只有一行,但不容易找到。另一个问题的标题使得解决方案无法在其中找到,因为我需要更改现有文件的日期,而不是创建新文件。参考: 相当于使用 Linux 的 `touch` 用 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