一次慘痛教訓讓我寫了個Windows定期備份文件腳本

来源:https://www.cnblogs.com/edisonfish/archive/2023/03/08/17190612.html
-Advertisement-
Play Games

前言 說實話在寫這篇文章的時候,鹹魚不禁又想起了那件男默女淚的往事 我喜歡做筆記,我覺得好記性不如爛筆頭,所以在我的學生以及職業生涯階段,我用過四款筆記應用——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/xcopy  
Copies 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 在文件傳輸過程中請求網路壓縮。
/? 在命令提示符下顯示幫助。
  關於 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 的任務計劃來實現 打開任務計劃程式,選擇右上角的創建基本任務           設置備份時間為每個月的周一早上九點           選擇執行腳本           這樣一個定時備份的程式就完成了!
感謝閱讀,喜歡作者就動動小手[一鍵三連],這是我寫作最大的動力    
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 此文大多數來自這篇文章,但是修改了裡面一些錯誤的地方和優化了一些內容,以及增加了桌面安裝部分和其他一些常用軟體安裝(wayland下的輸入法/firefox等) https://zhuanlan.zhihu.com/p/112541071 正文開始: 安裝前的準備 在Windows還沒有被消滅之前, ...
  • Why need the UDS Service 0x10? ECU在正常工作時會處於某一個會話模式下,上電後會自動進入預設會話模式,所以ECU啟動後我們不需要輸入0x10 01來進入該會話模式。ECU的不同會話模式間存在一定的狀態轉換關係規則(特定邏輯)。 初次接觸UDS的話,可能不太理解這個0x ...
  • 前言: Linux伺服器運行了很多應用,在高負載下,伺服器可能會出現性能瓶頸,例如CPU利用率過高、記憶體不足、磁碟I/O瓶頸等,從而導致系統卡頓,服務無法正常運行等問題。所以針對以上問題,可以通過調整內核參數和系統的相關組件,優化應用程式來提高伺服器的性能和穩定性,避免系統崩潰和服務中斷。 Linu ...
  • 1. vmware esxi安裝centos8,開啟內核虛擬化 2. 安裝qemu-system-arrch64 操作: wget https://download.qemu.org/qemu-2.11.0.tar.xz tar xvJf qemu-2.11.0.tar.xz cd qemu-2.1 ...
  • 無論你是後端程式員還是前端程式員,都避免不了和Linux打交道。上篇介紹了Linux常用的20個命令其中的10個,本文繼續介紹剩下的10個命令。 11.man 命令 manual的縮寫,即使用手冊的意思,是Linux下最核心的命令之一,用來列出一份完整的說明 語法格式 : man [參數] 常用參數 ...
  • CentOS7.9 搭建內部yum源伺服器同步阿裡yum源 環境說明: 1、企業內網需求:企業內部許多伺服器是不能連接互聯網,但每台centos主機安裝軟體包時都配置本地yum源很麻煩,也缺少第三方yum源,因此在內網搭建一臺yum源伺服器滿足這一需求,同時網路層面策略只允許此yum源伺服器每周日晚 ...
  • 一、下載安裝兩個版本的JDK 官網下載地址:Java Downloads | Oracle 下載安裝成功後,安裝路徑E:\Java\上 JDK8 有兩個包一個jdk1.8.0_231,一個jre1.8.0_231。JDK17只有一個jdk-17.0.5 二、JDK的環境配置 切換環境變數 在系統變數 ...
  • Liunx Vim常用命令 1、打開命令: vi / vim + filename(文件名) 2、退出命令: 強制退出不保存修改的內容 :q! 退出並且保存修改的內容 :wq 強制保存修改的內容然後退出(修改了只讀文件會用到) :wq! 註意:輸入法需要改為英文,中文不生效! 3、游標移動命令 個人 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...