前言 說實話在寫這篇文章的時候,鹹魚不禁又想起了那件男默女淚的往事 我喜歡做筆記,我覺得好記性不如爛筆頭,所以在我的學生以及職業生涯階段,我用過四款筆記應用——Onenote、語雀、印象筆記、Typora 其中我個人覺得體驗最好的非 Typora 莫屬了 在 2022 年的時候,由於 Typor ...
前言
說實話在寫這篇文章的時候,鹹魚不禁又想起了那件男默女淚的往事 我喜歡做筆記,我覺得好記性不如爛筆頭,所以在我的學生以及職業生涯階段,我用過四款筆記應用——Onenote、語雀、印象筆記、Typora 其中我個人覺得體驗最好的非 Typora 莫屬了 在 2022 年的時候,由於 Typora 收費,我就尋思網上找個破解版的用用(白嫖這一塊嗷) 沒想到一頓操作下來,我誤刪了現在的軟體,更加令人崩潰的是,我當時 Typora 文件是存放在程式的目錄之下!!! 如下圖所示: 我是完全無視掉下麵那個 DO NOT ADD FILES HERE 於是當我意識到我辛辛苦苦寫下的筆記全部都沒有了的時候,那一瞬間我崩潰了 趕緊上某魚看看有沒有幫忙恢複數據的服務,儘管到最後數據是恢復了,但內容全是亂碼(再度崩潰) 經過這麼一件慘案,鹹魚痛定思痛,於是決定寫一個定期自動備份文件的 Windows 腳本 在寫這個腳本之前,我們先來學習一下腳本當中用到的命令 xcopy 微軟官方介紹:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/xcopyCopies files and directories, including subdirectories可以看到,xcopy 用於複製文件和目錄,包括子目錄 參數如下:
參數 | 說明 |
---|---|
/W | 顯示以下消息,併在開始複製文件之前等待響應:按任意鍵開始複製文件 () |
/p | 提示確認是否要創建每個目標文件。 |
/c | 忽略錯誤。 |
/v | 在寫入目標文件時驗證每個文件,以確保目標文件與源文件相同。 |
/q | 禁止顯示 xcopy 消息。 |
/f | 複製時顯示源和目標文件名。 |
/l | 生成要複製的文件列表,但不主動複製文件。 |
/G | 當 目標 不支持加密時,創建解密的目標文件。 |
/d [:MM-DD-YYYY] | 僅複製指定日期或之後更改的源文件。如果未包含 MM-DD-YYYY 值,xcopy則 複製比現有目標文件更新的所有源文件。此命令行選項允許更新已更改的文件。 |
/U | 從僅存在於目標上的源複製文件。 |
/i | 如果 source 為目錄或包含通配符且目標不存在, xcopy 則假定 destination 指定目錄名稱並創建新目錄。然後, xcopy 將所有指定的文件複製到新目錄中。預設情況下, xcopy 會提示指定目標是文件還是目錄。 |
/s | 複製目錄和子目錄,除非它們為空。如果省略 /s,可在 xcopy 單個目錄中工作。 |
/e | 複製所有子目錄,即使它們為空。將 /e 與 /s 和 /t 命令行選項一起使用。 |
/t | 複製子目錄結構 (,即樹) ,而不複製文件。若要複製空目錄,必須包含 /e 命令行選項。 |
/k | 複製文件並保留 目標 文件上的只讀屬性(如果 源文件 上存在)。預設情況下, xcopy 刪除只讀屬性。 |
/r | 複製只讀文件。 |
/h | 複製具有隱藏和系統文件屬性的文件。預設情況下, xcopy 不會複製隱藏的文件或系統文件 |
/a | 僅複製設置了存檔文件屬性的 源文件 。/a 不會修改源文件的存檔文件屬性。 |
/m | 複製設置了存檔文件屬性的 源文件 。與 /a 不同, /m 關閉源中指定的文件中的存檔文件屬性。 |
/n | 使用 NTFS 短文件或目錄名稱創建副本。 將文件或目錄從 NTFS 捲複製到 FAT 捲時,或者當 FAT 文件系統命名約定 (目標文件系統上需要 8.3 個字元) 時,需要 /n。destinatio*文件系統可以是 FAT 或 NTFS。 |
/o | 複製文件所有權和自由訪問控制列表 (DACL) 信息。 |
/x | 複製文件審核設置和系統訪問控制列表 (SACL) 信息 (暗示 /o) 。 |
/Y | 取消提示,確認是否要覆蓋現有目標文件。 |
/-Y | 提示確認是否要覆蓋現有目標文件。 |
/z | 在可重啟模式下通過網路複製。 |
/b | 複製符號鏈接而不是文件。此參數是在 Windows Vista® 中引入的。 |
/j | 在不緩衝的情況下複製文件。建議用於非常大的文件。此參數已添加到 Windows Server 2008 R2 中。 |
/compress | 在文件傳輸過程中請求網路壓縮。 |
/? | 在命令提示符下顯示幫助。 |
- 使用 /z
- 複製加密文件
- 追加文件
- Destination 預設值
- 提示指定 Destination 是文件還是目錄
正文
在瞭解了 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 的任務計劃來實現 打開任務計劃程式,選擇右上角的創建基本任務 設置備份時間為每個月的周一早上九點 選擇執行腳本 這樣一個定時備份的程式就完成了!
感謝閱讀,喜歡作者就動動小手[一鍵三連],這是我寫作最大的動力