iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Software Development

如果可以,我想用30天的時間打造一間抵霸閣系列 第 14

[Day14]抵霸閣-原來記事本也可以寫程式之備份篇

  • 分享至 

  • xImage
  •  

學習程式可以幫助我們解決許多重複性的工作
而在公司總有遇到許多需要備份的檔案
像是Log檔或是ETL收檔之類的
為了不被新寫的資料覆蓋掉
又或者是想依日期去存放每天的檔案
因此有項工具可以協助處理這麻煩的瑣事:batch檔
而且入門相對程式來得容易
接下來就來看看怎麼開始吧!

首先打開記事本
接著輸入

for /f "tokens=1-4 delims=/ " %%j in ("%date%") do set CUR-DRB=%%j-%%k-%%l
IF EXIST C:\IT_Backup%CUR-DRB% (rd /Q/S C:\IT_Backup%CUR-DRB%)
md C:\IT_Backup%CUR-DRB%
XCOPY "C:\IT" "C:\IT_Backup%CUR-DRB%" /D/K/E/Y

Imgur
其中路徑是需要依照你設定的檔案路徑來改的
需要備份的檔案在這裡 [C:\IT]
Imgur
要把檔案備份到這裡 [C:\ITBackup%CUR-DRB%]
Imgur

小提示:
for /f :用來解析文本,讀取字符串
複製所用到的指令:XCOPY
以/來切割字串(就像是split):delims=/
日期變數:%date% (可以用cmd 輸入echo %date% 就可以看到像"2022/09/29 週四"這種格式的當天日期)
Imgur
(所以將"2022/09/29 週四"用/來切割的話就會得到j=2022,k=09,l=29
接著設定變數CUR-DRB=%%j-%%k-%%l 也就是2022-09-29
那麼md C:\IT_Backup%CUR-DRB% 就會在C:\IT_Backup下建立2022-09-29的資料夾)
提取字串(這邊拿的字串就是剛剛用delims切好的):tokens
rd :刪除目錄
md :建立目錄

相關參數的說明
/Q:在複製時不要顯示檔名
/S:複製每個目錄及其包含的子目錄,不含空目錄
/D:只複製比目的檔還更新的檔案
/K:複製後檔案的屬性不變
/E:包含子目錄
/Y:覆蓋一個已經存在的檔案時不會跳出提示

彩色版:Imgur

接著另存新檔 副檔名需為bat
(存檔類型選擇所有檔案 然後直接在檔名的最後加上[.bat]即可)
Imgur
接著便可以手動執行這個檔案
(像是雙擊執行檔[exe]的方式去雙擊你剛剛寫好的batch檔)
就可以看到檔案成功備份了!!
Imgur

備份到檔名是今天日期的資料夾下
Imgur
你現在也會寫簡單的程式了
很有成就感,對吧?
這就是當工程師小小的樂趣XD


上一篇
[Day13]抵霸閣- 關閉並接受網站使用Cookie
下一篇
[Day015]抵霸閣- 繞過DNS解析直接連線到網站的實用秘訣
系列文
如果可以,我想用30天的時間打造一間抵霸閣30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言