前言
我在家中使用桌電,在學校使用筆電,而我有用電腦筆記的習慣,因此衍生出兩台電腦資料同步的問題,一開始是使用隨身硬碟,於筆記時,就在OneNote下寫下哪個資料夾中的哪個檔案有更動或修改,爾後在將隨身硬碟中有更新的資料移到另一台電腦中,但這樣實在耗神又費時,所以就想找個更省時的方法來協助資料同步的問題,問了一下Goo老師,有NAS、軟體、cmd指令等方法,而我覺得使用指令寫成一個批次檔來進行資料同步挺有趣的,就參考網路上的資料寫了一個批次檔來幫助我維持兩台電腦間的資料同步。
批次檔程式碼
註:第九、十行有重複性是因為我需要參考到兩個不同資料夾,若是要備份的資料夾只有一個,那就寫一個即可。
參考資料
我在家中使用桌電,在學校使用筆電,而我有用電腦筆記的習慣,因此衍生出兩台電腦資料同步的問題,一開始是使用隨身硬碟,於筆記時,就在OneNote下寫下哪個資料夾中的哪個檔案有更動或修改,爾後在將隨身硬碟中有更新的資料移到另一台電腦中,但這樣實在耗神又費時,所以就想找個更省時的方法來協助資料同步的問題,問了一下Goo老師,有NAS、軟體、cmd指令等方法,而我覺得使用指令寫成一個批次檔來進行資料同步挺有趣的,就參考網路上的資料寫了一個批次檔來幫助我維持兩台電腦間的資料同步。
批次檔程式碼
1 2 3 4 5 6 7 8 9 10 11 12 | @echo off For /f "tokens=1-4 delims=/ " %%w in ("%date%") do (set DATESTAMP=%%w年%%x月%%y日%%z) For /f "tokens=1-4 delims=:." %%g in ("%time%") do (set TIMESTAMP=%%g點%%h分%%i秒%%j) set FileName=%DATESTAMP%%TIMESTAMP% ::/E:複製子目錄,包含空資料夾。 ::/XO:排除較舊的檔案。 ::/PURGE:刪除目的中在來源裡已不存在的檔案或目錄。 ::/MAXAGE:n:檔案年齡的最大值 - 排除舊於 n 天/日期的檔案。 robocopy "來源資料夾" "目的資料夾" /E /XO /PURGE /maxage:4 /LOG+:"日誌檔資料夾路徑/%FileName%.log" robocopy "來源資料夾" "目的資料夾" /E /XO /PURGE /maxage:4 /LOG+:"日誌檔資料夾路徑/%FileName%.log" echo 複製資料完成! pause |
參考資料
- How can I make a batch file rename a file to the date or time? Retrieved December 14, 2013, from http://www.computerhope.com/issues/ch000987.htm
- How to get current datetime on Windows command line, in a suitable format for using in a filename? Retrieved December 14, 2013, from http://stackoverflow.com/questions/203090/how-to-get-current-datetime-on-windows-command-line-in-a-suitable-format-for-us
- Microsoft. (n.d.). Using batch files. Retrieved December 14, 2013. from http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
- Print Date/Time in DOS Batch File (n.d.). Retrieved December 14, 2013, from http://snipplr.com/view/21573/
- Rob van der Woude(2011, December 20). Date and Time in Windows NT 4 and later. Retrieved December 14, 2013. from http://www.robvanderwoude.com/datetimentbasics.php
- bat批次處理for /f的通俗教程(民97年8月1日)。民102年12月14日,取自:http://tw.myblog.yahoo.com/chinwaihung123/article?mid=267&next=124&l=f&fid=13
- dsa7410(民9810月14日)。用指令robocopy 做批次檔快速複製(備份)檔案。民102年12月14日,取自:http://www.wretch.cc/blog/dsa7410/9334589
- zsyidea(民100年9月19日)。用批處理刪除指定字符之前或之後的所有內容(FOR /F 中的Delims和Tokens總結)。民102年12月14日,取自:http://zsyidea.blog.hexun.com.tw/68363197_d.html
沒有留言:
張貼留言