当前位置: 首页 > news >正文

将OneDrive上的文件定期备份到移动硬盘

背景:

我在oneDrive上存了很多文件,分布在多个文件夹中,也有套了好几层文件夹的情况。我希望每隔一段时间,将oneDrive上的所有文件向移动硬盘上拷贝一份,但是我只想将距离上一次向移动硬盘拷贝的文件相比,发生变化的一部分,也就是只拷贝距离上一次有变化(新增、删除或修改)的文件。但是每一次拷贝时,都将所有文件都一一比对太麻烦了,有什么办法能让我快速的知道,距离上一次拷贝,都有哪些文件(夹)发生了变化吗?可以令我有针对性的拷贝到移动硬盘中

而且我想用批处理脚本或powershell脚本或python脚本的方式,定期(30天)执行一次备份过程,具体过程如下:

可以使用批处理脚本、PowerShell 脚本或 Python 脚本来实现定期(每 30 天)执行一次增量备份的任务。下面是这三种方式详细的代码和配置步骤。


文章目录

      • 1.批处理脚本(.bat)
        • 步骤:
      • 2. PowerShell 脚本
        • 步骤:
      • 3. Python 脚本
        • 步骤:

1.批处理脚本(.bat)

批处理脚本非常适合简单的增量备份任务。可以利用 robocopy 命令来进行增量备份。你需要使用 任务计划程序 来定期运行这个脚本。

步骤:
  1. 编写批处理脚本

    使用记事本或任何文本编辑器编写一个批处理脚本(如 backup.bat)。以下是一个使用 robocopy 命令的增量备份脚本示例。

    @echo off
    set source=C:\Users\YourUser\OneDrive
    set destination=E:\Backup\OneDriverobocopy %source% %destination% /MIR /FFT /Z /XOecho Backup Completed.
    

    说明

    • robocopy 是用于文件复制的命令,其中 /MIR 参数用于镜像文件夹(同步新增、修改或删除文件)。
    • /FFT 会使用文件系统的时间戳来避免不同操作系统间时间戳微小差异的问题。
    • /Z 启用可恢复模式,支持中断后恢复。
    • /XO 只复制修改过的文件,忽略旧文件。
  2. 保存文件
    将脚本保存为 backup.bat

  3. 设置任务计划程序定期执行

    • 打开 任务计划程序(在开始菜单搜索 “任务计划程序”)。
    • 选择 创建基本任务
    • 设置任务名称(例如:OneDrive Backup)。
    • 设置触发条件为 每 30 天,然后指定任务的开始时间。
    • 在“操作”步骤中选择 启动程序,并浏览选择你刚才创建的 backup.bat 文件。
    • 按照提示完成任务设置,之后任务会按照设定的间隔(每 30 天)自动运行。

2. PowerShell 脚本

PowerShell 脚本比批处理脚本更灵活,可以进行更多的错误处理和日志记录。你可以使用 robocopy 也可以使用 PowerShell 的内建命令来进行文件备份。

步骤:
  1. 编写 PowerShell 脚本

    打开 PowerShell 编辑器或使用文本编辑器,编写以下脚本,保存为 backup.ps1

    $source = "C:\Users\YourUser\OneDrive"
    $destination = "E:\Backup\OneDrive"# 使用 robocopy 执行增量备份
    $robocopyCommand = "robocopy $source $destination /MIR /FFT /Z /XO"# 执行命令
    Invoke-Expression $robocopyCommandWrite-Host "Backup Completed"
    
  2. 保存文件
    将文件保存为 backup.ps1

  3. 设置任务计划程序定期执行
    和批处理脚本类似,使用任务计划程序来定期执行 PowerShell 脚本。你可以按照以下步骤设置:

    • 打开 任务计划程序
    • 创建一个新的基本任务,命名为 OneDrive PowerShell Backup
    • 设置触发条件为 每 30 天
    • 在“操作”步骤中选择 启动程序,然后在“程序或脚本”框中输入以下内容:
      powershell.exe
      
    • 在“添加参数”框中输入:
      -ExecutionPolicy Bypass -File "C:\path\to\backup.ps1"
      
      这里的 -ExecutionPolicy Bypass 是为了确保脚本能够运行,即使 PowerShell 执行策略被限制。

3. Python 脚本

Python 脚本的优势在于它具有更强的灵活性,你可以自定义日志记录、错误处理等。使用 shutil 库或者外部库(如 rsyncos)进行文件复制。

步骤:
  1. 安装必要的库
    如果你打算使用 shutil 库,可以直接进行复制。对于增量备份,可以使用 filecmp 库来比较文件。

    如果你需要安装 rsync 或其他高级工具,你可以通过命令 pip install rsync 等方式进行安装。

  2. 编写 Python 脚本

    使用文本编辑器(如 VS Code)编写以下 Python 脚本,保存为 backup.py

    import os
    import shutil
    from filecmp import dircmpsource = r"C:\Users\YourUser\OneDrive"
    destination = r"E:\Backup\OneDrive"def backup(source, destination):if not os.path.exists(destination):os.makedirs(destination)# 使用 shutil 的 copy2 函数复制文件,同时保留元数据for dirpath, dirnames, filenames in os.walk(source):# 计算当前目录相对于源目录的路径subdir = os.path.relpath(dirpath, source)dest_dir = os.path.join(destination, subdir)if not os.path.exists(dest_dir):os.makedirs(dest_dir)for filename in filenames:src_file = os.path.join(dirpath, filename)dest_file = os.path.join(dest_dir, filename)# 如果文件不同或目标文件不存在,则进行复制if not os.path.exists(dest_file) or not filecmp.cmp(src_file, dest_file, shallow=False):shutil.copy2(src_file, dest_file)backup(source, destination)
    print("Backup Completed")
    

    说明

    • 使用 shutil.copy2 来复制文件并保留文件的元数据(如修改时间)。
    • 使用 filecmp.cmp 来比较源文件和目标文件,只有在文件发生变化时才复制。
    • os.walk 用于遍历源文件夹的所有文件和子目录。
  3. 保存文件
    将文件保存为 backup.py

  4. 设置任务计划程序定期执行
    同样,你可以使用任务计划程序来定期运行 Python 脚本。设置方法如下:

    • 打开 任务计划程序
    • 创建新的任务,并设置触发条件为 每 30 天
    • 在“操作”步骤中选择 启动程序,并选择 Python 可执行文件的路径(例如 C:\Python39\python.exe)。
    • 在“添加参数”框中输入脚本路径,如:
      C:\path\to\backup.py
      

相关文章:

将OneDrive上的文件定期备份到移动硬盘

背景: 我在oneDrive上存了很多文件,分布在多个文件夹中,也有套了好几层文件夹的情况。我希望每隔一段时间,将oneDrive上的所有文件向移动硬盘上拷贝一份,但是我只想将距离上一次向移动硬盘拷贝的文件相比,发…...

从0开始,来看看怎么去linux排查Java程序故障

一,前提准备 最基本前提:你需要有liunx环境,如果没有请参考其它文献在自己得到local建立一个虚拟机去进行测试。 有了虚拟机之后,你还需要安装jdk和配置环境变量 1. 安装JDK(以OpenJDK 17为例) 下载JDK…...

DeepSeek-V3:开源多模态大模型的突破与未来

目录 引言 一、DeepSeek-V3 的概述 1.1 什么是 DeepSeek-V3? 1.2 DeepSeek-V3 的定位 二、DeepSeek-V3 的核心特性 2.1 多模态能力 2.2 开源与可扩展性 2.3 高性能与高效训练 2.4 多语言支持 2.5 安全与伦理 三、DeepSeek-V3 的技术架构 3.1 模型架构 3…...

Deep Sleep 96小时:一场没有硝烟的科技保卫战

2025年1月28日凌晨3点,当大多数人还沉浸在梦乡时,一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击,警报声响彻机房,一场针对中国关键信息基础设施的网络攻击来势汹汹! 面对美国发起的这场…...

Redis地理散列GeoHash

GeoHash是一种用于地理位置编码的算法,将二维的地理坐标(纬度和经度)转换为一维的字符串表示,从而实现对地理位置的高效存储和查询。Redis作为一个内存数据库,提供了对GeoHash的支持,使得地理位置相关的数据…...

JAVA安全—反射机制攻击链类对象成员变量方法构造方法

前言 还是JAVA安全,哎,真的讲不完,太多啦。 今天主要是讲一下JAVA中的反射机制,因为反序列化的利用基本都是要用到这个反射机制,还有一些攻击链条的构造,也会用到,所以就讲一下。 什么是反射…...

专业学习|一文了解并实操自适应大邻域搜索(讲解代码)

一、自适应大邻域搜索概念介绍 自适应大邻域搜索(Adaptive Large Neighborhood Search,ALNS)是一种用于解决组合优化问题的元启发式算法。以下是关于它的详细介绍: -自适应大领域搜索的核心思想是:破坏解、修复解、动…...

9. k8s二进制集群之kube-controller-manager部署

同样在部署主机上创建证书请求文件(为之后的证书生成做准备)根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)创建kube-controller-manager服务配置文件创建kube-controller-manager服务启动文件同步kube-controller-manager证书到对应mast…...

轮转数组-三次逆置

题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 void rotate(int* nums, int numsSize, int k){}示例: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] …...

3 卷积神经网络CNN

1 Image Classification (Neuron Version) – 1.1 Observation 1 1.2 Observation 2 如果不同的receptive field需要相同功能的neuron,可以使这些neuron共享参数 1.3 Benefit of Convolutional Layer 2 Image Classification (Filter Version) 不用担心filter大小…...

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工

目录 决策树&#xff1a;代码设计代码&#xff1a; 决策树&#xff1a; 代码设计 代码&#xff1a; class Solution {boolean[][] vis;int ret,m,n;public int getMaximumGold(int[][] grid) {m grid.length;n grid[0].length;vis new boolean[m][n]; for(int i 0; i <…...

java基础1(黑马)

一、初识Java 1.Java背景知识 1&#xff09;Java是美国SUN公司在1995年推出的一门计算机高级编程语言。 2&#xff09;Java早期名称为OAK&#xff0c;后来才改为Java。 3&#xff09;Java之父&#xff1a;詹姆斯高斯林。 4&#xff09;2009年&#xff0c;SUN公司被Oracle公…...

ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景

1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …...

2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件

在2024年底的网络安全事件中&#xff0c;某提权工具被发现植入后门&#xff0c;攻击者利用 .suo 文件作为隐蔽的攻击方式。由于 .suo 文件是 Visual Studio 项目的隐藏配置文件&#xff0c;通常不为安全研究人员所关注&#xff0c;因此为攻击者提供了潜在的攻击渠道。 初步调查…...

PCB走线宽度与过流能力参考

我们PCB走线&#xff0c;线宽与允许通过电流的大小是什么样的&#xff1f;几个因素 1、允许的温升&#xff1a;如果能够允许的铜线升高的温度越高&#xff0c;那么允许通过的电流自然也就越高 2、走线的线宽&#xff1a;线越宽 &#xff0c;导线横截面积越大&#xff0c;电阻…...

电商项目-分布式事务(四)基于消息队列实现分布式事务

基于消息队列实现分布式事务&#xff0c;实现消息最终一致性 如何基于消息队列实现分布式事务&#xff1f; 通过消息队列实现分布式事务的话&#xff0c;可以保证当前数据的最终一致性。实现思路&#xff1a;将大的分布式事务&#xff0c;进行拆分&#xff0c;拆分成若干个小…...

g++ -> make -> cmake(草稿)

1 Windows上安装mingw 2 构建一个 c 项目 3 g 编译 4 make 编译 5 cmake 编译...

JSON常用的工具方法

前言: 在日常开发中&#xff0c;JSON 数据的处理是常见的需求。无论是数据转换、格式化还是与其他格式的互转&#xff0c;掌握一些常用的工具方法可以大大提高开发效率。本文将介绍一些实用的 JSON 操作方法&#xff0c;帮助你快速上手。 JSON常用的工具方法 1.json字符串转换…...

【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信

Kubernetes中Pod间的通信 本系列文章共3篇: 【Kubernetes Pod间通信-第1篇】在单个子网中使用underlay网络实现Pod到Pod的通信【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信(本文介绍)【Kubernetes Pod间通信-第3篇】Kubernetes中Pod与ClusterIP服务之间的通信…...

[权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;Trusted Service Paths 提权原理 Windows 的服务通常都是以 System 权限运行的&#xff0c;所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析&a…...

OpenClaw成本优化方案:ollama GLM-4-7-Flash替代OpenAI API实测

OpenClaw成本优化方案&#xff1a;ollama GLM-4-7-Flash替代OpenAI API实测 1. 为什么需要寻找OpenAI API的替代方案 去年我开始在个人项目中使用OpenClaw实现自动化办公流程时&#xff0c;很快被OpenAI API的token消耗速度震惊了。一个简单的"读取邮件附件-解析内容-生…...

目标检测损失函数进化史:从IoU到EIoU/SIoU/WIoU,YOLOv8性能提升完全指南

引言在目标检测领域&#xff0c;损失函数的设计直接影响着模型的收敛速度和检测精度。作为YOLOv8等先进检测器的核心组件&#xff0c;边界框回归损失函数经历了从简单到复杂的演进过程。传统的IoU&#xff08;Intersection over Union&#xff09;损失虽然直观有效&#xff0c;…...

SOONet与Transformer架构深度解析:提升长视频理解精度的核心技术

SOONet与Transformer架构深度解析&#xff1a;提升长视频理解精度的核心技术 最近在折腾长视频内容理解的项目时&#xff0c;遇到了一个挺头疼的问题&#xff1a;用户给一段长达几分钟甚至几十分钟的视频&#xff0c;再提一个复杂的自然语言问题&#xff0c;比如“请找出视频中…...

节能模式:OpenClaw+nanobot的间歇性任务调度技巧

节能模式&#xff1a;OpenClawnanobot的间歇性任务调度技巧 1. 为什么需要节能模式 去年夏天&#xff0c;我的电费账单突然飙升。排查后发现&#xff0c;那台24小时运行OpenClaw的工作站竟然是耗电大户——它持续调用着本地部署的Qwen大模型&#xff0c;GPU风扇昼夜不停地呼啸…...

如何用kill-doc解决30+文档平台下载难题:免费高效的文档获取方案

如何用kill-doc解决30文档平台下载难题&#xff1a;免费高效的文档获取方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本…...

SDMatte镜像结构解析:/opt/sdmatte-web与模型目录映射关系

SDMatte镜像结构解析&#xff1a;/opt/sdmatte-web与模型目录映射关系 1. SDMatte简介 SDMatte 是一款面向高质量图像抠图场景的 AI 模型&#xff0c;特别适合处理以下任务&#xff1a; 主体分离与提取透明物体抠图&#xff08;玻璃、薄纱等&#xff09;复杂边缘精修&#x…...

告别手动建模!用Blender GIS插件5分钟搞定CARLA地图(附OSM数据源)

告别手动建模&#xff01;用Blender GIS插件5分钟搞定CARLA地图&#xff08;附OSM数据源&#xff09; 在自动驾驶仿真领域&#xff0c;快速构建高精度地图一直是开发者的痛点。传统手动建模方式不仅耗时费力&#xff0c;还难以保证道路网络的拓扑准确性。现在&#xff0c;通过…...

类和对象(中)——运算符重载

引入语言在语法上可以直接用指令实现运算符对 内置类型 的操作C中加入了类类型&#xff0c;那如何使用以前的运算符&#xff08;如 - * / 等&#xff09;&#xff0c;对类类型进行操作呢&#xff1f;由此引入运算符重载&#xff1a;C为了增强代码的可读性引入了运算…...

突破语言边界:XUnity.AutoTranslator全场景应用指南

突破语言边界&#xff1a;XUnity.AutoTranslator全场景应用指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你打开一款期待已久的外文游戏&#xff0c;却被满屏陌生文字阻挡了探索的脚步&#xff1…...

橄榄菜芝士焗三文鱼配脆米饼:潮汕咸香与海洋鲜美的跨界狂想

潮汕人家的厨房里&#xff0c;总有一罐橄榄菜。乌黑油亮&#xff0c;咸香醇厚&#xff0c;是白粥的最佳伴侣&#xff0c;也是蒸鱼炒菜的秘武器。而深海里的三文鱼&#xff0c;肥美丰腴&#xff0c;油脂均匀&#xff0c;是西餐的宠儿。当潮汕的咸香遇见西式的丰腴&#xff0c;再…...