前言
說實話在寫這篇文章的時候,鹹魚不禁又想起了那件男默女淚的往事
我喜歡做筆記,我覺得好記性不如爛筆頭,所以在我的學生以及職業生涯階段,我用過四款筆記應用——Onenote、語雀、印象筆記、Typora
其中我個人覺得體驗最好的非 Typora 莫屬了
在 2022 年的時候,由於 Typora 收費,我就尋思網上找個破解版的用用(白嫖這一塊嗷)
沒想到一頓操作下來,我誤刪了現在的軟體,更加令人崩潰的是,我當時 Typora 檔案是存放在程式的目錄之下!!!
如下圖所示:
我是完全無視掉下面那個 DO NOT ADD FILES HERE
於是當我意識到我辛辛苦苦寫下的筆記全部都沒有了的時候,那一瞬間我崩潰了
趕緊上某魚看看有沒有幫忙恢復資料的服務,儘管到最後資料是恢復了,但內容全是亂碼(再度崩潰)
經過這麼一件慘案,鹹魚痛定思痛,於是決定寫一個定期自動備份檔案的 Windows 指令碼
在寫這個指令碼之前,我們先來學習一下指令碼當中用到的命令
xcopy
微軟官方介紹:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy
Copies files and directories, including subdirectories
可以看到,xcopy 用於複製檔案和目錄,包括子目錄
引數如下:
關於 xcopy 的一些使用指南
-
使用 /z
加上 /z參數列示可以在重啟的模式下透過網路進行復制
如果你在複製階段,網路斷開了,則連線會在重新建立連線之後恢復,加了/z引數還能夠顯示每個檔案完成複製操作的百分比
-
複製加密檔案
如果在複製加密檔案過程中碰到不支援 EFS 的 volume,會報錯
你需要先將檔案解密,然後複製,之後再重新加密;又或者可以將加密檔案複製到支援 EFS 的 volume
-
追加檔案
如果想要追加檔案,把 Destination 指定成單個檔案,但 source 是指定多個檔案(使用萬用字元 or file1+file2+file3 格式)
-
Destination 預設值
如果省略 Destination,xcopy 則會將檔案複製到當前目錄
-
提示指定 Destination 是檔案還是目錄
如果你的 Destination 不包含現有的目錄,而且沒有以反斜槓結尾,系統就會提示你
如果希望將一個或多個檔案複製到某個檔案,請按 F;如果希望將一個或多個檔案複製到目錄,請按 D
如果你不想這條提示出現,可以加上 /i 引數禁止顯示此訊息
如果 source 是多個檔案或目錄,則會導致 xcopy 假定目標為目錄
正文
在瞭解了 xcopy 之後,就正式開始指令碼的編寫吧! 首先我們需要知道你筆記的路徑 我筆記的路徑是存放在D:\studynote下 而我筆記上面的圖片的存放路徑卻是在C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images下 其次定義變數
其中%date:~0,4%%date:~5,2%%date:~8,2%表示加上當前日期 具體原理如下: 在 Windows cmd 命令列視窗執行date命令後這個環境變數的值為
%date:~0,4% 表示從左向右指標向右偏0位,然後從指標偏移到的位置開始提取4位字元(結果是 2023,即年份) %date:~5,2% 表示指標從左向右偏移5位,然後從偏移處開始提取2位字元(結果是03,月份) %date:~8,2% 表示指標從左向右偏移8位,然後從偏移處開始提取2位字元(結果是07,日份) 接下來我們使用 xcopy 命令
點選儲存,字尾名改成 bat,然後執行,就可以看到備份成功了!
那有小夥伴可能會說,現在只是實現了備份功能,定期備份怎麼實現呢 這裡我們用 Windows 的任務計劃來實現 開啟任務計劃程式,選擇右上角的建立基本任務
設定備份時間為每個月的週一早上九點
選擇執行指令碼
這樣一個定時備份的程式就完成了!
感謝閱讀,喜歡作者就動動小手[一鍵三連],這是我寫作最大的動力