[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理自动备份文件并跳过已有的文件夹和文件

本帖最后由 ny350101 于 2011-3-30 09:57 编辑

如果目标文件夹里没有某个文件,就复制,如果有,先比较,相同则跳过,不同则复制。该批处理的意思是将I盘中所有的文件及文件夹全部备份到D盘中的“备份”文件夹下,大家可根据自己的情况自行修改
  1. xcopy i:\ /s/d/y d:\备份\
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

如果要只使用一个xcopy,则:
如果源文件总数量不确定,需要先递归总数,并生成n个n,然后以 echo nnn....|xcopy ......形式运行
如果源文件总数量固定,则将 echo nnn....|xcopy ...... 中n的个数固定为实际数字
注意:xcopy需要使用-y参数
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本帖最后由 ny350101 于 2011-3-19 22:53 编辑
如果要只使用一个xcopy,则:
如果源文件总数量不确定,需要先递归总数,并生成n个n,然后以 echo nnn....|xcopy ......形式运行
如果源文件总数量固定,则将 echo nnn....|xcopy ...... 中n的个数固定为实际数字
...
hanyeguxing 发表于 2011-3-18 11:52
好像考虑这么复杂吧,不需要考虑总数是否固定的因素。比如说,代码中的i盘是U盘的话,你知道总共有多少个文件吗?这个基本的代码我验证过的。

TOP

下面发个带变量的,目标文件和源文件都可以选择。其中第二个变量即可以是U盘,也可以是别的盘符(分区),我的初衷是备份U盘的。
  1. @echo off
  2. color 1f
  3. echo 请进行基本的设置:
  4. echo.
  5. echo.
  6. set /p pf=请输入目标盘符:
  7. set /p u=请需要备份的U盘盘符:
  8. set /p bfwjj=请输入需要备份的文件夹:
  9. cls
  10. echo.
  11. echo.
  12. echo 友情提示:
  13. echo 程序将在%pf%盘下建立名为%bfwjj%备份的文件夹,文件夹属性已改为隐藏。
  14. echo.
  15. echo.
  16. pause
  17. echo @echo off>>"D:\Program Files\%bfwjj%备份.bat"
  18. echo color 1f>>"D:\Program Files\%bfwjj%备份.bat"
  19. echo IF not EXIST "%u%:\%bfwjj%" goto 2>>"D:\Program Files\%bfwjj%备份.bat"
  20. echo md %pf%:\%bfwjj%备份 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
  21. echo attrib -h %pf%:\%bfwjj%备份 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
  22. echo xcopy %u%:\%bfwjj% /s/d/y "%pf%:\%bfwjj%备份\">>"D:\Program Files\%bfwjj%备份.bat"
  23. echo attrib +h %pf%:\%bfwjj%备份 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
  24. echo echo 备份完成>>"D:\Program Files\%bfwjj%备份.bat"
  25. echo ping 127.1 -n 1 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
  26. echo exit>>"D:\Program Files\%bfwjj%备份.bat"
  27. echo :2>>"D:\Program Files\%bfwjj%备份.bat"
  28. echo echo 未发现需要备份的文件夹>>"D:\Program Files\%bfwjj%备份.bat"
  29. echo ping 127.1 -n 10 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
  30. echo exit>>"D:\Program Files\%bfwjj%备份.bat"
  31. echo [InternetShortcut] >>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
  32. echo URL="D:\Program Files\%bfwjj%备份.bat">>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
  33. echo IconIndex="D:\Program Files\%bfwjj%备份.bat" >>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
  34. echo IconFile=0>>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
  35. exit
复制代码

TOP

返回列表