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

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

有没有这样一种工具:

如果文件在复制过程中,如果遇到文件名相同的文件,则先将原文件移动(或者拷贝)至本目录下的“backup”文件夹中(要被覆盖的文件是许多无规则文件),然后再进行覆盖。

谢谢各位帮忙找找,无论是DOS命令还是什么代码均可,现在急需。

我把2楼的代码修改了一下:
  1. if exist a (copy a\*.* x\*.*) else (copy a\*.* backup\*.*)
复制代码
拷贝没问题,但是,如果有相同文件时,并没有对原文件备份至backup目录里,怎么回事?

还有个问题,如果目录中包含子目录含有空格文件名的文件怎么办?

[ 本帖最后由 alpha 于 2010-3-17 20:15 编辑 ]

TOP

运行6楼的代码时,提示:“系统找不到指定的文件。”怎么回事?另外,6楼能不能把代码解释一下,多谢

TOP

原帖由 BatCoder 于 2010-3-17 21:56 发表
你吧@echo off删掉,看看是哪个文件出错了。

去掉后,提示如下:
  1. C:\Users\administrator\Desktop>for /F "tokens=*" %a in ('dir /s/b/a-d "..\a\"') do (
  2. if exist "C:\Users\administrator\Desktop\x\%~nxa" (move /y "C:\Users\administrator\Desktop\x\%
  3. ~nxa" "C:\Users\administrator\Desktop\backup\%~nxa" )
  4. copy "%~a" "C:\Users\administrator\Desktop\x\%~nxa"
  5. )
  6. 系统找不到指定的文件。
复制代码

TOP

按照12楼的代码运行后,比较成功,但就是还有一个问题没有解决:

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

当然了,要求还是不变,若目标文件夹x中已经存在“123”、“456”等子目录,就要如同上文的设置,要将文件及所有子目录文件夹/文件,一同备份至backup目录里。

有劳你了。多谢。

TOP

自己顶起来~~~help me

TOP

大家帮忙解决下~!尤其是yangfengoo同志,有劳了

TOP

能不能在12楼的代码上进行修改?

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

当然了,要求还是不变,若目标文件夹x中已经存在“123”、“456”等子目录,就要如同上文的设置,要将文件及所有子目录文件夹/文件,一同备份至backup目录里。

TOP

自己顶起来!~~~!

TOP

返回列表