当前位置: 首页 > 知识库问答 >
问题:

如何创建只复制已修改文件的备份批处理文件

包永新
2023-03-14

我想创建一个符合这些要求的备份Batch文件:

要求:

1-Only copy the source files if the source file got modified.

2-If the destination contains the files/folders that do not exist in the source, then the destination files/folders will be deleted.

3-Copies all subdirectories, even if they are empty.

4-If something happened that make the coping process uncompleted (ie copied unsuccessfully), the program will revert & keep the old version of the destination folder.

5-The batch file should run at the time i turn off my PC or at 7pm Daily.

所以我试过这个

xcopy C:\MyProject N:\backup\MyProject /V /Y /E /D

注意:/v=验证,/y=无提示/e=细分/d=仅更改副本

但是,在运行批处理之后,它没有删除需求2中提到的文件/文件夹。此外,我不知道如何满足要求4

我搜索了很多问题,但他们似乎没有满足要求2的代码

我不想在Win7中使用备份工具,因为它很重

当你做项目时,备份非常重要,我希望我的问题能帮助很多其他程序员。

有人能知道一个好的解决方案吗?

共有2个答案

仲孙超
2023-03-14

我最近为一台旧的XP机器编写了这样的批处理文件,因为我不相信NTbackup生成的格式在未来的机器上是可读的。E、 g.Windows 7和8需要下载某种转换器:忘了它吧。我的批处理文件位于根C:\directory中,在“tools”程序列表中有一个快捷方式。

在记事本中写入文件,并保存为例如c:\backup.bat.从“运行”命令运行它。第一次运行时,您指定的所有目录都将完全复制到您的备份驱动器,包括所有子目录(我使用4 GB的拇指驱动器:您可能需要更大的)。第一次,我的小3 GB左右的东西在旧XP机器上花费了大约4分钟。

有趣的是,以这种方式生成的总未压缩备份并不比Windows XP中NTback以该程序不可读格式生成的备份大。

这是一个批处理文件,带有注释(REM)。。。

REM备份。球棒

下面的xcopy行用于目录c:\anydir及其子目录中的内容,复制到e:驱动器(例如USB驱动器)上的目录\anydir。

REM实际命令:

X复制c:\anydir e:\anydir/i/s/y/d

对于其他目录,只需在xcopy命令中更改c:\directory和e:\directory名称。但是,要注意像“我的图片”这样的名字,要有一个空格:你必须重命名它们(只需删除空格),这样DOS才能识别它们。

REM完成

出口

/i意味着创建备份驱动器上不存在的任何(子)目录。因此,这将从您开始的c:目录复制整个分支。

除非源目录和子目录为空,否则/s会复制它们。

y表示不要询问过度写入现有文件的问题。

/d说只复制以后的文件:非常适合备份,而且非常快。

这些文件与原始文件一模一样:没有奇怪的备份格式。

关于发问者的问题#4,我认为再次运行备份将覆盖任何失败。但如果失败,请擦除备份驱动器并重新开始。和问题#5。。。XP(我认为是7)允许从启动菜单执行计划任务:只需插入c:\backup。bat在列表中。但我还没试过。

宋烨烁
2023-03-14

如果您需要镜像备份,只复制新的和更改的文件,删除源中不再存在的文件,那么Robocopy是内置的,可以做到这一点。计划每天晚上7点的批处理文件将起作用。

您的需求#4是我在任何备份程序中都没有见过的,包括Robocop。

 类似资料:
  • 问题内容: 我需要备份带有日期时间戳的现有文件夹,并将其替换(删除并重新创建)为文件夹内的新内容。 有人有脚本可以做到这一点吗? 我尝试了以下代码,其中 问题答案: 带参数的 命令 以配置的国家/地区为当前用户帐户定义的格式输出当前日期。可以通过引用动态 环境变量 (例如使用)来访问完全相同的日期字符串。 带参数的 命令 以配置的国家/地区为当前用户帐户定义的格式输出当前时间。可以通过引用动态 环

  • 我想创建从任务计划程序运行的批处理文件 要求: 少于30天的文件应从主文件夹移动到存档文件夹 然后应删除移动的存档文件 它应该存储所有日志条目 我已经编写了步骤脚本 步骤脚本 有人能告诉我如何使用上述两个命令创建日志文件吗。 日志文件应存储其移动的所有文件名

  • 前提: 脚本每n秒运行一次,这将创建定义文件到定义位置的备份。创建n个备份后,清除(删除)过期的备份。 问题: 我设法开始使用此版本来备份文件夹并删除较旧的verisons,但当我尝试使用特定文件时“找不到文件”。我已经为此抓耳挠腮了几个小时,我可能错过了一些小东西。例如,我不想简单地删除所有. xlsx文件,因为Target文件夹中可能会有多个不同的. xlsx文件。如果有3个较新版本可用,我只

  • 本文向大家介绍bat批处理批量修改文件扩展名的方法,包括了bat批处理批量修改文件扩展名的方法的使用技巧和注意事项,需要的朋友参考一下 有的时候我们可能会遇到,在一个文件夹内有很多个文件,我们需要修改这些文件的扩展名,当然我们可以一个一个的修改,可是如果有很多文件,那就很麻烦了,所以今天就教大家批量修改文件扩展名的方法,希望大家能够灵活运用。 这里假设你要把扩展名为.gif的文件都改成.jpg格式

  • 我有下面的批处理文件,每天备份一次,并保存7天。 它的作用是每周一重命名周一备份目录以包含当前日期,然后使用Robocopy将当前数据镜像到新目录。然后星期二,它对星期二目录等执行相同的操作,因此每个备份保留7天。 我想修改它以进行每周备份并保留6周。我在想我会将目录名称更改为第1周到第6周,并按顺序回收目录,但现在我没有简单的方法来确定我在哪个星期,因为没有像我使用星期几进行日常备份那样每6周重

  • 主要内容:创建批处理文件,保存批处理文件,执行批处理文件,修改批处理文件在本章中,我们将学习如何创建,保存,执行和修改批处理文件。 创建批处理文件 批处理文件通常在记事本中创建。 因此,最简单的方法是打开记事本并输入脚本所需的命令。 对于这个练习,打开记事本并输入以下语句。 保存批处理文件 在创建批处理文件后,下一步是保存批处理文件。 批处理文件的扩展名为或。 命名批处理文件时需要注意的一些常规规则 - 在命名批处理文件时避免使用空格,有时会在从其他脚本中调用时产生问