一次慘痛教訓讓我寫了個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
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...