close

工作上的要求是如此的 :

1. ms-sql所產生出來的備份檔案是使用週來做區隔。

2. 要做備份的機器是在另外一台機器。

3. 備份所使用的機器空間有限。

因此我想到的邏輯便是 :

1. 刪除備份機上的最舊檔案。

2. 再將已經產生新的bak檔案搬移到此目錄底下。

 

@echo off
1 DIR *.bak /tc /o-d /b > DirList.txt
2 FOR /F "delims=" %%i in (DirList.txt) do (set New_dir=%%i)
3 del %New_dir%
4 del DirList.txt
5 DIR \\XXXXX\XXXX\*.bak /tc /od /b > DirList2.txt
6 FOR /F "delims=" %%i in (DirList2.txt) do (set New_dir=%%i)
7 copy \\XXXXX\XXXX\%New_dir% %New_dir%
8 set New_dir=
9 del DirList2.txt

 

1 : 將備份端資料夾內檔案做排序且把檔案名稱存到DirList.txt中(DIR /o-d <== 是反向排序日期,會將最新的檔案放置在最上方)。

2 : 做一個迴圈且輪流將檔案名稱放入 %%i 的參數內。

3 : 刪除最後一個在參數內的檔案名稱(最舊的檔案)。

4 : 刪除查詢後的檔案。

5 : 查詢ms-sql自動備份放置的資料夾(DIR /od <== 正向排序,日期最新的放在最下方) 。

6 : 做一個迴圈且輪流將檔案名稱放入 %%i 的參數內。

7 : COPY最新的檔案到我做磁帶備份的位置。

8,9 : 移除不需要檔案與參數

 

如此就可以定期將檔案搬移。

 

arrow
arrow
    全站熱搜

    werwolf 發表在 痞客邦 留言(0) 人氣()