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

[文件操作] 批处理复制文件时如何备份同名文件?

[复制链接]
发表于 2010-3-23 18:23:28 | 显示全部楼层
原帖由 alpha 于 2010-3-17 21:37 发表
运行6楼的代码时,提示:“系统找不到指定的文件。”怎么回事?另外,6楼能不能把代码解释一下,多谢
回复 7楼 的帖子你吧@echo off删掉,看看是哪个文件出错了。



   要把copy  "" ""
红色的的引号对去掉,   我曾经为了这个问题,    把一大串批处理代码, 反反复复找了N遍,    现在记死了也不会犯这个错误那就是: "for 过的变量,无论它有多长永远别带引号对..COPY即前一对引号必须省略"

[ 本帖最后由 x9tiancmd 于 2010-3-23 18:26 编辑 ]
 楼主| 发表于 2010-3-23 20:24:54 | 显示全部楼层
能不能在12楼的代码上进行修改?

需改进的:假如a文件夹中包含“123”、“456”等子目录,那我将如何实现将a文件夹中的所有文件以及“123”、“456”等子目录全拷贝至x目录,也就是说,拷贝后,x文件夹中也要有“123”、“456”等这些文件夹极其文件。简而言之,就好比我们用电脑中“复制”这个操作一样,连同文件及所有子目录一同进行复制。

当然了,要求还是不变,若目标文件夹x中已经存在“123”、“456”等子目录,就要如同上文的设置,要将文件及所有子目录文件夹/文件,一同备份至backup目录里。
 楼主| 发表于 2010-3-28 22:58:13 | 显示全部楼层
自己顶起来!~~~!
发表于 2010-3-29 10:52:46 | 显示全部楼层
没有进一步判断子目录 仅一级目录判断
  1. @echo off
  2. MD "backup" 2>nul
  3. set "FilesA=e:\a"
  4. set "FilesB=f:\x"
  5. for /f "tokens=*" %%i in ('dir /b "%FilesA%"') do (
  6. if exist "%Filesa%\%%i"  (
  7.    if exist "%Filesb%\%%i" XCOPY /Y /H /R /E "%Filesa%\%%i" "backup\%%i" >nul 2>nul
  8.    XCOPY /Y /H /R /E "%Filesa%\%%i" "%Filesb%\%%i" >nul 2>nul
  9.   ) else (
  10.     if exist "%Filesb%\%%i" copy "%Filesa%\%%i" "backup" >nul 2>nul
  11.     copy "%Filesa%\%%i" "%Filesb%" >nul 2>nul
  12.   )
  13. )
  14. pause
复制代码
发表于 2010-3-29 12:47:49 | 显示全部楼层
利用了xcopy /U /L 特性
假设文件夹为d:\test\a,d:\test\c
  1. @echo off
  2. mkdir d:\test\c\backup
  3. for /f "tokens=*" %%i in ('xcopy /e /u /y d:\test\a d:\test\c ^|findstr /v "复制了"') do (
  4.         mkdir %%~dpi 2>nul
  5.         call :backup %%~pnxi
  6. )
  7. xcopy /e /f  /y d:\test\a d:\test\c >>resuit.txt
  8. goto :eof

  9. :backup
  10. set dir=%*
  11. set dir=%dir:\test\a\=%
  12. copy /y  "d:\test\c\%dir%" "d:\test\c\backup\%dir%"
  13. goto:eof
复制代码

[ 本帖最后由 caruko 于 2010-3-30 16:44 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:42 , Processed in 0.017722 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表