Board logo

标题: [文件操作] [已解决]批处理怎样同步文件夹? [打印本页]

作者: zhanglei1371    时间: 2014-9-8 08:14     标题: [已解决]批处理怎样同步文件夹?

想同步两个文件夹:E:\1  我的软件到 P:\软件\1  我的软件
要求:
对子目录中也进行操作
将E盘的这个目录同步到P盘,如果E盘有的文件或文件夹,而p盘没有,则复制过去;
如果存在同名文件,则只复制日期比较新的文件或文件夹,直接覆盖,不提示
对于同名文件,创建修改时间都相同的不处理

多谢各位了!
顺便将附件程序传上:
作者: Batcher    时间: 2014-9-8 10:57

copy /s /d /y 可以吗
作者: yu2n    时间: 2014-9-8 13:05

你一定没用过 robocopy (NT6自带),使用它的 /MIR 参数,可以确保两个文件夹完全一致,当然,它也不会去做“覆盖完全相同文件”的无用功。
  1. robocopy  "E:\1  我的软件"  "P:\软件\1  我的软件"  /MIR
复制代码
  1. C:\Users\Yu2n>robocopy /?
  2. -------------------------------------------------------------------------------
  3.    ROBOCOPY     ::     Windows 的可靠文件复制
  4. -------------------------------------------------------------------------------
  5.   开始时间: 2014年9月8日 13:02:22
  6.                用法 :: ROBOCOPY source destination [file [file]...] [options]
  7.                  源 :: 源目录(驱动器:\路径或\\服务器\共享\路径)。
  8.                目标 :: 目标目录(驱动器:\路径或\\服务器\共享\路径)。
  9.                文件 :: 要复制的文件(名称/通配符: 默认为 "*.*")。
  10. ::
  11. :: 复制选项:
  12. ::
  13.                  /S :: 复制子目录,但不复制空的子目录。
  14.                  /E :: 复制子目录,包括空的子目录。
  15.              /LEV:n :: 仅复制源目录树的前 n 层。
  16.                  /Z :: 在可重新启动模式下复制文件。
  17.                  /B :: 在备份模式下复制文件。
  18.                 /ZB :: 使用可重新启动模式;如果拒绝访问,请使用备份模式。
  19.                  /J :: 复制时使用未缓冲的 I/O (推荐在复制大文件时使用)。
  20.             /EFSRAW :: 在 EFS RAW 模式下复制所有加密的文件。
  21.       /COPY:复制标记:: 要复制的文件内容(默认为 /COPY:DAT)。
  22.                        (复制标记: D=数据,A=属性,T=时间戳)。
  23.                        (S=安全=NTFS ACL,O=所有者信息,U=审核信息)。
  24.                /SEC :: 复制具有安全性的文件(等同于 /COPY:DATS)。
  25.            /COPYALL :: 复制所有文件信息(等同于 /COPY:DATSOU)。
  26.             /NOCOPY :: 不复制任何文件信息(与 /PURGE 一起使用)。
  27.             /SECFIX :: 修复所有文件的文件安全性,即使是跳过的文件。
  28.             /TIMFIX :: 修复所有文件的文件时间,即使是跳过的文件。
  29.              /PURGE :: 删除源中不再存在的目标文件/目录。
  30.                /MIR :: 镜像目录树(等同于 /E 加 /PURGE)。
  31.                /MOV :: 移动文件(复制后从源中删除)。
  32.               /MOVE :: 移动文件和目录(复制后从源中删除)。
  33.      /A+:[RASHCNET] :: 将给定的属性添加到复制的文件。
  34.      /A-:[RASHCNET] :: 从复制的文件中删除给定的属性。
  35.             /CREATE :: 仅创建目录树和长度为零的文件。
  36.                /FAT :: 仅使用 8.3 FAT 文件名创建目标文件。
  37.                /256 :: 关闭超长路径(> 256 个字符)支持。
  38.              /MON:n :: 监视源;发现多于 n 个更改时再次运行。
  39.              /MOT:m :: 监视源;如果更改,在 m 分钟时间后再次运行。
  40.       /RH:hhmm-hhmm :: 可以启动新的复制时运行的小时数 - 时间。
  41.                 /PF :: 基于每个文件(而不是每个步骤)来检查运行小时数。
  42.              /IPG:n :: 程序包间的间距(ms),以释放低速线路上的带宽。
  43.                 /SL :: 对照目标复制符号链接。
  44.             /MT[:n] :: 使用 n 个线程进行多线程复制(默认值为 8)。
  45.                        n 必须至少为 1,但不得大于 128。
  46.                        该选项与 /IPG 和 /EFSRAW 选项不兼容。
  47.                        使用 /LOG 选项重定向输出以便获得最佳性能。
  48. /DCOPY:复制标记:: 要复制的目录内容(默认为 /DCOPY:DA)。
  49.                        (复制标记: D=数据,A=属性,T=时间戳)。
  50.            /NODCOPY :: 不复制任何目录信息(默认情况下,执行 /DCOPY:DA)。
  51.          /NOOFFLOAD :: 在不使用 Windows 复制卸载机制的情况下复制文件。
  52. ::
  53. :: 文件选择选项:
  54. ::
  55.                  /A :: 仅复制具有存档属性集的文件。
  56.                  /M :: 仅复制具有存档属性的文件并重置存档属性。
  57.     /IA:[RASHCNETO] :: 仅包含具有任意给定属性集的文件。
  58.     /XA:[RASHCNETO] :: 排除具有任意给定属性集的文件。
  59.   /XF 文件[文件]... :: 排除与给定名称/路径/通配符匹配的文件。
  60.   /XD 目录[目录]... :: 排除与给定名称/路径匹配的目录。
  61.                 /XC :: 排除已更改的文件。
  62.                 /XN :: 排除较新的文件。
  63.                 /XO :: 排除较旧的文件。
  64.                 /XX :: 排除多余的文件和目录。
  65.                 /XL :: 排除孤立的文件和目录。
  66.                 /IS :: 包含相同文件。
  67.                 /IT :: 包含已调整的文件。
  68.              /MAX:n :: 最大的文件大小 - 排除大于 n 字节的文件。
  69.              /MIN:n :: 最小的文件大小 - 排除小于 n 字节的文件。
  70.           /MAXAGE:n :: 最长的文件存在时间 - 排除早于 n 天/日期的文件。
  71.           /MINAGE:n :: 最短的文件存在时间 - 排除晚于 n 天/日期的文件。
  72.           /MAXLAD:n :: 最大的最后访问日期 - 排除自 n 以来未使用的文件。
  73.           /MINLAD:n :: 最小的最后访问日期 - 排除自 n 以来使用的文件。
  74.                        (If n < 1900 then n = n days, else n = YYYYMMDD date)。
  75.                 /XJ :: 排除接合点。(默认情况下通常包括)。
  76.                /FFT :: 假设 FAT 文件时间(2 秒粒度)。
  77.                /DST :: 弥补 1 小时的 DST 时间差。
  78.                /XJD :: 排除目录的接合点。
  79.                /XJF :: 排除文件的接合点。
  80. ::
  81. :: 重试选项:
  82. ::
  83.                /R:n :: 失败副本的重试次数: 默认为 1 百万。
  84.                /W:n :: 两次重试间的等待时间: 默认为 30 秒。
  85.                /REG :: 将注册表中的 /R:n 和 /W:n 保存为默认设置。
  86.                /TBD :: 等待定义共享名称(重试错误 67)。
  87. ::
  88. :: 日志记录选项:
  89. ::
  90.                  /L :: 仅列出 - 不复制、添加时间戳或删除任何文件。
  91.                  /X :: 报告所有多余的文件,而不只是选中的文件。
  92.                  /V :: 生成详细输出,同时显示跳过的文件。
  93.                 /TS :: 在输出中包含源文件的时间戳。
  94.                 /FP :: 在输出中包含文件的完整路径名称。
  95.              /BYTES :: 以字节打印大小。
  96.                 /NS :: 无大小 - 不记录文件大小。
  97.                 /NC :: 无类别 - 不记录文件类别。
  98.                /NFL :: 无文件列表 - 不记录文件名。
  99.                /NDL :: 无目录列表 - 不记录目录名称。
  100.                 /NP :: 无进度 - 不显示已复制的百分比。
  101.                /ETA :: 显示复制文件的预期到达时间。
  102.           /LOG:文件 :: 将状态输出到日志文件(覆盖现有日志)。
  103.          /LOG+:文件 :: 将状态输出到日志文件(附加到现有日志中)。
  104.        /UNILOG:文件 :: 以 UNICODE 方式将状态输出到日志文件(覆盖现有日志)。
  105.       /UNILOG+:文件 :: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。
  106.                /TEE :: 输出到控制台窗口和日志文件。
  107.                /NJH :: 没有作业标头。
  108.                /NJS :: 没有作业摘要。
  109.            /UNICODE :: 以 UNICODE 方式输出状态。
  110. ::
  111. :: 作业选项 :
  112. ::
  113.       /JOB:作业名称 :: 从命名的作业文件中提取参数。
  114.      /SAVE:作业名称 :: 将参数保存到命名的作业文件
  115.               /QUIT :: 处理命令行后退出(以查看参数)。
  116.               /NOSD :: 未指定源目录。
  117.               /NODD :: 未指定目标目录。
  118.                 /IF :: 包含以下文件。
  119. ::
  120. :: 备注:
  121. ::
  122.        在卷的根目录上使用 /PURGE 或 /MIR 将
  123.        导致 robocopy 也对“系统卷信息”目录内的
  124.        文件应用所请求的操作。如果这不是
  125.        预期目的,则可以使用 /XD 开关指示 robocopy
  126.        跳过该目录。
复制代码
XP用户可以下载这个命令行工具:
http://xiazai.zol.com.cn/detail/10/91484.shtml




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2