用於複製、重新命名和觸控檔案的 Win Server 2012 PowerShell 4 腳本

用於複製、重新命名和觸控檔案的 Win Server 2012 PowerShell 4 腳本

我創建了一個 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

相關內容