标题: [文件操作] [已解决]批处理自动备份文件并跳过已有的文件夹和文件 [打印本页]
作者: ny350101 时间: 2011-3-18 10:35 标题: [已解决]批处理自动备份文件并跳过已有的文件夹和文件
本帖最后由 ny350101 于 2011-3-30 09:57 编辑
如果目标文件夹里没有某个文件,就复制,如果有,先比较,相同则跳过,不同则复制。该批处理的意思是将I盘中所有的文件及文件夹全部备份到D盘中的“备份”文件夹下,大家可根据自己的情况自行修改复制代码
作者: hanyeguxing 时间: 2011-3-18 11:52
如果要只使用一个xcopy,则:
如果源文件总数量不确定,需要先递归总数,并生成n个n,然后以 echo nnn....|xcopy ......形式运行
如果源文件总数量固定,则将 echo nnn....|xcopy ...... 中n的个数固定为实际数字
注意:xcopy需要使用-y参数
作者: ny350101 时间: 2011-3-19 22:51
本帖最后由 ny350101 于 2011-3-19 22:53 编辑
如果要只使用一个xcopy,则:
如果源文件总数量不确定,需要先递归总数,并生成n个n,然后以 echo nnn....|xcopy ......形式运行
如果源文件总数量固定,则将 echo nnn....|xcopy ...... 中n的个数固定为实际数字
...
hanyeguxing 发表于 2011-3-18 11:52
好像考虑这么复杂吧,不需要考虑总数是否固定的因素。比如说,代码中的i盘是U盘的话,你知道总共有多少个文件吗?这个基本的代码我验证过的。
作者: ny350101 时间: 2011-3-19 22:54
下面发个带变量的,目标文件和源文件都可以选择。其中第二个变量即可以是U盘,也可以是别的盘符(分区),我的初衷是备份U盘的。- @echo off
- color 1f
- echo 请进行基本的设置:
- echo.
- echo.
- set /p pf=请输入目标盘符:
- set /p u=请需要备份的U盘盘符:
- set /p bfwjj=请输入需要备份的文件夹:
- cls
- echo.
- echo.
- echo 友情提示:
- echo 程序将在%pf%盘下建立名为%bfwjj%备份的文件夹,文件夹属性已改为隐藏。
- echo.
- echo.
- pause
- echo @echo off>>"D:\Program Files\%bfwjj%备份.bat"
- echo color 1f>>"D:\Program Files\%bfwjj%备份.bat"
- echo IF not EXIST "%u%:\%bfwjj%" goto 2>>"D:\Program Files\%bfwjj%备份.bat"
- echo md %pf%:\%bfwjj%备份 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
- echo attrib -h %pf%:\%bfwjj%备份 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
- echo xcopy %u%:\%bfwjj% /s/d/y "%pf%:\%bfwjj%备份\">>"D:\Program Files\%bfwjj%备份.bat"
- echo attrib +h %pf%:\%bfwjj%备份 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
- echo echo 备份完成>>"D:\Program Files\%bfwjj%备份.bat"
- echo ping 127.1 -n 1 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
- echo exit>>"D:\Program Files\%bfwjj%备份.bat"
- echo :2>>"D:\Program Files\%bfwjj%备份.bat"
- echo echo 未发现需要备份的文件夹>>"D:\Program Files\%bfwjj%备份.bat"
- echo ping 127.1 -n 10 >nul 2>nul>>"D:\Program Files\%bfwjj%备份.bat"
- echo exit>>"D:\Program Files\%bfwjj%备份.bat"
-
- echo [InternetShortcut] >>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
- echo URL="D:\Program Files\%bfwjj%备份.bat">>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
- echo IconIndex="D:\Program Files\%bfwjj%备份.bat" >>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
- echo IconFile=0>>"%USERPROFILE%\「开始」菜单\%bfwjj%备份.lnk"
- exit
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |