ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【转】Bat script backup

【转】Bat script backup

原创 Linux操作系统 作者:zroc 时间:2012-02-15 10:13:45 0 删除 编辑

原文地址:http://info.dcvs.chc.edu.tw/wordpress/blog/2011/01/31/bat-script-backup/

用批次檔 『BAT』 來做備份「不需要用任何軟體」

其實備份資料不一定要用軟體,也可以自己寫個批次檔來進行備份!

引言回覆:

XCOPY C:/Documents and Settings/lu/Application Data/Microsoft/Address Book \\W2KSERVER\備份區\LU\Address Book /S /D /Y
XCOPY C:/Documents and Settings/lu/Favorites \\W2KSERVER\備份區\LU\Favorites /S /D /Y
XCOPY C:/LU \\W2KSERVER\備份區\LU\LU /S /D /Y

一般而言, 用 3 個參數就夠了。

引言回覆:

/S 複製每個目錄及其包含的子目錄。
/D 複製發生變更的檔案。
/Y 所有覆蓋的詢問都回答 YES

如果您想要知道;XCOPY 所有命令,可以在 MS-DOS 視窗輸入 XCOPY/?:

引言回覆:

Z:\>xcopy /?

複製檔案和樹狀目錄。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]\r\r
[/EXCLUDE:file1[+file2][+file3]…]

source 指定要複製的檔案。
destination 指定位置或者/以及新檔案的名稱。
/A 只複製設定成保存屬性的檔案,不要改變屬性的設定。
/M 只複製設定成保存屬性的檔案,並清除保存屬性。
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,
只複製那些來源檔案日期比目的檔案日期為新的檔案。
/EXCLUDE:file1[+file2][+file3]…
指定檔案清單字串。每個字串
應該在檔案中的不同行。如果有字串對應到要進行複製的檔案絕
對路徑的任何部分,這個檔案會被排除複製。例如,指定字串
\obj\ 或 .obj 的話,會排除所有在 obj 目錄下副檔名是
.obj 的檔案複製。
/P 在建立每個目的檔案時顯示提示。
/S 複製每個目錄及其包含的子目錄,不複製空目錄。
/E 複製每個目錄及其包含的子目錄,也複製空目錄。/S 與 /E
相同,能夠用來修改 /T。
/V 驗證每個新檔案。
/W 在複製之前提示您按鍵繼續。
/C 如果錯誤發生時也繼續複製。
/I 如果目的不存在且複製一個以上的檔案的話,就假設指定的
目的一定是目錄。
/Q 在複製時不要顯示檔名。
/F 在複製時顯示來源及目的檔案的全部檔名。
/L 顯示要複製的檔案。
/G 允許加密檔案複製到不支援加密的
目的地。
/H 時複製隱藏檔和系統檔。
/R 覆蓋唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄及子目錄。
/T /E 會包括空目錄及子目錄。
/U 只複製已經存在目的位置的檔案。
/K 複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/N 用所產生的短檔名來進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
/Y 不要提示您確認是否要覆蓋一個已經存在的檔案。
/-Y 示您確認是否要覆蓋一個已經存在的檔案。
/Z 在可重新開始的模式中複製網路檔案。

參數 /Y 可以在 COPYCMD 環境變數中預先設定。但可以在命令列中用 /-Y 參數
來覆蓋原有設定。

:/Documents and Settings/lu/Application Data/Microsoft/Address Book \\W2KSERVER\備份區\LU\Address Book /S /D /Y
C:/Documents and Settings/lu/Favorites \\W2KSERVER\備份區\LU\Favorites /S /D /Y
C:/LU \\W2KSERVER\備份區\LU\LU /S /D /Y

感覺好像少了動詞….是不是要寫成:
xcopy 來源資料夾 目的資料夾 /S /D /Y

路徑有空白, 兩頭要雙引號

代碼:

XCOPY D:\LU Z:\LU /S /D /Y

XCOPY "C:\Documents and Settings\lu\Favorites" "z:\Favorites" /S /D /Y

XCOPY "C:\Documents and Settings\lu\Application Data\Microsoft\Address Book" "z:\Address Book" /S /D /Y

XCOPY "C:\Documents and Settings\lu\Local Settings\Application Data\Microsoft\Outlook" "z:\Outlook" /S /D /Y

插花一下……

順便在:
開始 -> 設定 -> 控制台 -> 排定的工作 -> 新增的排定工作
(我是在 Windows 2000 Server 下)

將工作設定在排程的時間中自動備份,就可達到自動化的目地了

/D:m-d-y
複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,只複製那些來源檔案日期比目的檔案日期為新的檔案。

/?不是寫假的…

謝謝各位大大…這樣備份方便多了 ^^
另問一下是帳號的部份如何用變數呢?因為開版大大的帳號是 lu ..
但不見得每位大大的帳號都是 lu 哩 ^^
PS:紅色的字想用變數替代帳號
XCOPY "C:/Documents and Settings" "D:\備份\C\Documents" /S /D /Y
XCOPY "C:/Documents and Settings/lu/Application Data/Microsoft/Address Book" "D:\備份\C\Documents\lu\Application Data\Microsoft\Address Book" /S /D /Y

試試xcopy32
在沒有ghost的時代
整個window 對拷
xcopy32 c:\*.* d:\*.* /s/e/v/y/h/c

發表於: 星期二 六月 07, 2005 7:27 am 文章主題:

——————————————————————————–

在此貼上我的心得
如果你是在unix上的samba的機器的話你在作xcopy
的時候他不能加入 /o
C:\> xcopy /?
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]\r\r
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
C:>

而且跟SAMBA對連作備份的時候 會有時候會有怪異 但用檔案總管又沒有
原因是可能SAMBA有問題
我個人備份也是用 XCOPY 跟 NTBACKUP 二個搭配著用
但其他大大如果定期備份大量資料又要產生日期 那可以用 VBS 加 BAT 作最大的利用

對於加入 網域的 client , server 可以設定哪個目錄在 client 登入時後自動掛到 client 的某個磁碟代號, 而不需要額外輸入帳號密碼

請問在沒有能力架SERVER及網域的情況下,有無其他方式因應…

原諒一個非本科管理資訊之可憐者!

可以利用 script. 或 batch file. (在開機的時候執行)
ex: netdisks.bat
@echo off
net use z: \\192.168.0.1\share1 "Password" /user:"UserName"
net use y: \\192.168.0.2\share2 "Password" /user:"UserName"
net use x: \\192.168.0.3\share3 "Password" /user:"UserName"
_________________

只要是 長檔名 檔名中間有空白 或是中文檔名
都是要用 " "來作區隔的

帳號要用變數

請這樣寫

@echo off
set id =
set /p id=*************** 請輸入要備份的ID名稱:
XCOPY "C:/Documents and Settings/%id%/Application Data/Microsoft/Address Book" "D:\備份\C\Documents\lu\Application Data\Microsoft\Address Book" /S /D /Y

mcn 寫到:
lu 寫到:
對於加入 網域的 client , server 可以設定哪個目錄在 client 登入時後自動掛到 client 的某個磁碟代號, 而不需要額外輸入帳號密碼

請問在沒有能力架SERVER及網域的情況下,有無其他方式因應…

原諒一個非本科管理資訊之可憐者!

可以利用 script. 或 batch file. (在開機的時候執行)
ex: netdisks.bat
@echo off
net use z: \\192.168.0.1\share1 "Password" /user:"UserName"
net use y: \\192.168.0.2\share2 "Password" /user:"UserName"
net use x: \\192.168.0.3\share3 "Password" /user:"UserName"

最好 結尾加上 net use z: /delete /y
要不然 到時候關機要多按很多次滑鼠

謝謝各位大大…這樣備份方便多了 ^^
另問一下是帳號的部份如何用變數呢?因為開版大大的帳號是 lu ..
但不見得每位大大的帳號都是 lu 哩 ^^
PS:紅色的字想用變數替代帳號
XCOPY "C:/Documents and Settings" "D:\備份\C\Documents" /S /D /Y
XCOPY "C:/Documents and Settings/lu/Application Data/Microsoft/Address Book" "D:\備份\C\Documents\lu\Application Data\Microsoft\Address Book" /S /D /Y

您可以用 %username% 變數來代替

改良版本

代碼:

DATE /T >> Z:\XCOPY.LOG
TIME /T >> Z:\XCOPY.LOG

XCOPY "C:\Documents and Settings\lu\Application Data\Microsoft\MSN Messenger\1061698994\CustomEmoticons" "z:\CustomEmoticons\" /S /D /Y >> Z:\XCOPY.LOG

XCOPY "C:\Documents and Settings\lu\Favorites" "z:\Favorites\" /S /D /Y >> Z:\XCOPY.LOG
XCOPY "C:\Documents and Settings\lu\Application Data\Microsoft\Address Book" "z:\Address Book\" /S /D /Y >> Z:\XCOPY.LOG

XCOPY D:\LU Z:\LU\ /S /D /Y >> Z:\XCOPY.LOG

rem 請先關閉 Outlook
XCOPY "D:\Outlook" "z:\Outlook\" /S /D /Y >> Z:\XCOPY.LOG

DATE /T >> Z:\XCOPY.LOG
TIME /T >> Z:\XCOPY.LOG

再改良, 使用 %USERPROFILE% 環境變數, 它代表 "C:\Documents and Settings\(使用者登入帳號)"

代碼:

rem 將日期時間輸出到 XCOPY.LOG, 以後可以看 D:\XCOPY.LOG 知道備份情況和錯誤訊息
DATE /T >> D:\XCOPY.LOG
TIME /T >> D:\XCOPY.LOG

rem 備份將 MSN 表情符號, 數字 1061698994 每台機器每個人可能不同, 請自行修改

rem 要知道那串數字的方法 :
rem 1.請將 [檔案總管] 的 [工具]下拉選單, [資料夾選項], [檢視] 標籤
rem 2.將 [隱藏保護的作業系統檔案] 打勾取消, 將 [隱藏檔案和資料夾] 改選為 [顯示所有檔案和資料夾]
rem 3.執行 [?#125;始][?#123;式集][附屬應用?#123;式][命令提示字元], 然後輸入 "cd Application Data\Microsoft\MSN Messenger\", 按下 Enter 按鍵, 就可以看到一串數字的目錄
rem 4.如果看到好幾個目錄, 只能一個個進去檢查了

rem 為了可以看到 表情符號實際的圖案, 將他改名 .gif , 改名失敗表示已經重複, 可以刪除

XCOPY "%USERPROFILE%\Application Data\Microsoft\MSN Messenger\1061698994\CustomEmoticons" "D:\CustomEmoticons\" /S /D /Y >> D:\XCOPY.LOG
REN D:\CustomEmoticons\*.dat *.gif
DEL D:\CustomEmoticons\*.dat

rem 備份我的最愛
XCOPY "%USERPROFILE%\Favorites" "D:\Favorites\" /S /D /Y >> D:\XCOPY.LOG

rem 備份 Outlook Express 通訊錄
XCOPY "%USERPROFILE%\Application Data\Microsoft\Address Book" "D:\Address Book\" /S /D /Y >> D:\XCOPY.LOG

rem Outlook Express 信件不在此備份, 直接在 [工具]下拉選單, [選項]選項, [維護]標籤, [郵件檔資料夾] 按鈕, 變更到其他地方 (例如 D:\Outlook Express 目錄), 省去備份時間

rem 備份個人資料 , 建議習慣不要將個人資料放在 [桌面][我的文件] 中, 免得系統重新安裝很麻煩
XCOPY D:\LU D:\LU\ /S /D /Y >> D:\XCOPY.LOG

rem 備份 Outlook 信件, 請先關閉 Outlook
XCOPY "D:\Outlook" "D:\Outlook\" /S /D /Y >> D:\XCOPY.LOG

rem 將日期時間輸出到 XCOPY.LOG, 可以知道何時執行結束
DATE /T >> D:\XCOPY.LOG
TIME /T >> D:\XCOPY.LOG

再改良, 使用 %USERPROFILE% 環境變數, 它代表 "C:\Documents and Settings\(使用者登入帳號)"

代碼:

…..
XCOPY D:\LU D:\LU\ /S /D /Y >> D:\XCOPY.LOG

…..
XCOPY "D:\Outlook" "D:\Outlook\" /S /D /Y >> D:\XCOPY.LOG

…..

這兩行路來源跟目的地路經相同,無法執行,
我猜這應該是使用者自己必須去調整的部份,

可以配合 7-zip 來達到壓縮的目地例如
代碼:

"C:\Program Files\7-Zip\7z.exe" a -t7z web01.7z "C:\Webroot\web01″ //壓縮指定資料夾

使用 EXCLUDE 參數, 可方便將某 磁碟分割 備份到另一個

xcopy D:\ K:\ /exclude:D:\excludefile.txt /Y /S /D

其中 excludefile.txt 內容
d:\DownLoads\
d:\System Volume Information\
d:\RECYCLER

其中
D:\Downloads 是正在下載的檔案, 隨時變化, 不想備份
d:\RECYCLER 是資源回收筒
d:\System Volume Information\ 是系統資訊

使用 EXCLUDE 參數, 可方便將某 磁碟分割 備份到另一個

xcopy D:\ K:\ /exclude:D:\excludefile.txt /Y /S /D

其中 excludefile.txt 內容
d:\DownLoads\
d:\System Volume Information\
d:\RECYCLER

其中
D:\Downloads 是正在下載的檔案, 隨時變化, 不想備份
d:\RECYCLER 是資源回收筒
d:\System Volume Information\ 是系統資訊

k: 是小弟的外接 USB HD
================================
以上資訊取得於國家資訊安全委員會

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8477629/viewspace-716302/,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux_nmon监控方法
请登录后发表评论 登录
全部评论

注册时间:2011-12-14

  • 博文量
    32
  • 访问量
    130414