用批处理,把一个文件夹里的所有文件复制到另一个文件夹,如果此文件夹里有,则不复制,没有,要复制。

用批处理,把一个文件夹里的所有文件复制到另一个文件夹,如果此文件夹里有,则不复制,没有,要复制。

如:A文件夹里有文件:新建文件夹1、新建文件夹等
B文件夹里有一个文件:新建文件夹
我要把A文件夹里的文件复制到B文件夹里,
@echo off
for /f "delims=" %%i in () 后面怎么写,请求高手

第1个回答  2012-11-05
楼主是想不用手动取消覆盖?如果手动取消覆盖那当然是最简单的,
下面先提一个方法,虽然不是很实用,不过应该还是能解决的,因为我一写代码就错漏百出,所以暂时未能提供代码,方法就是备份文件夹A,更名A1,然后复制B文件夹的所以内容进A1(可以实现自动覆盖),再把A1更名B,这样就得到你想要的了,再把B复制到原B文件夹就完成了(这个过程要注意备份),虽然这个方法可行,代码也很简单,但是如果文件多而且大的话效率就很低了,另一个方法代码正在写,但不确定能不能实现..............
第2个回答  2012-11-04
@echo off
echo N|xcopy /-y /s A B
用xcopy就行了,不用for的。
另外for /f是取各行。
比如
for /f "delims=" %%i in (h.txt) do echo %%i

type h.txt
的效果是一样的本回答被网友采纳
第3个回答  2012-11-04
文件夹A 路径 d:\文件夹A
文件夹B 路径 d:\文件夹B

从A往B复制

@echo off
cd d:\文件夹A
dir /b *.* >d:\list.txt
for /f %%i in (d:\list.txt) do if not exist "d:\文件夹B\%%i" copy "d:\文件夹A\%%i" " "d:\文件夹B"追问

我按照你上述试过了,不行的,可以私下交流指导一下嘛,我的QQ:445274261

追答

又想到一种思路可以这样写 ,代码比较简单了(不需要通过for命令来判断文件是否存在)

@echo off
set /p yml=请把要备份的目录拖入
set /p zml=请把备份到的目录拖入
set yml=%yml:"=%
set zml=%zml:"=%
echo n >n.txt
xcopy /e "%yml%\*.*" "%zml%\"n.txt
xcopy /e "d:\文件夹a\*.*" "d:\文件夹b\"<n.txt

del /f n.txt

注释
拖入的意思是 点住文件夹不要松开,拖动到命令行窗口中再松开左键

本回答被提问者采纳
第4个回答  2012-11-04
你是想让 B文件夹 与 A文件夹保持一致吗(只复制B中没有但A中有的文件)?
这样一条命令即可:

robocopy A文件夹 B文件夹 /mir追问

保持一致,只是原来有的文件不需要再一一复制,仅复制B中没有但A中有的文件。

相似回答