2016-03-02 107 views
2

當涉及到批處理文件和Powershell腳本時,您將不得不原諒我,因爲我是初學者。重命名.bak文件以包含過去7天的日期

我們有一個當前正在測試的SQL備份解決方案,它將每週執行一次完整備份,然後提供不同備份以提醒工作日。作爲還原過程的一部分,我們有一個Windows批處理腳本文件,它將在用7Zip壓縮之前重命名完整備份文件。腳本的命名部分看起來是這樣的:

cd C:\SQL Backups\Production Backups\eStart_Good 
set date=%date:~-4%_%date:~3,2%_%date:~0,2% 
ren *%date%* eStart_Good_FullBackup.bak 

由於這個命令將得到每週完全備份的夜間運行一次,它看起來對今天的日期在eg. 2016_03_02形式,因爲這是怎樣的命名約定在從SQL進行備份時設置。這是應該做的。

但是,在發生SQL完全備份之後發生的事情是通過取出名稱的「FullBackup」部分,並將其替換爲今天日期前7天的日期來重命名以前的eStart_Good_FullBackup文件。因此,如果下一個完全備份設置爲在04/03/2016上運行,我希望它以文件名的形式顯示爲2016_02_26

我知道用了重命名命令,我需要將其更改爲:

ren FullBackup eStart_Good_%date%.bak (FullBackup being a wild card.) 

但是,我已經嘗試了多種組合,改變設定日期變量,我不斷收到錯誤的號碼或片代碼回顯變量時。

set date=%date:~-4%_%date:~3,2%_%date:~0,2% 

有沒有人有任何建議,他們可以給我嗎?

回答

相關問題