求写个批处理,将某个文件夹下多个文件夹下的文件拷贝到一个文件中

因为可能存在同名的文件,所以遇到同名时,把另一个文件改名

set enabledelayedexpansion 
for /f "delims=" %%a in ('dir /a-d/s/b "A:\A_FOLDER"') do (
if exist "B:\B_FOLDER\%%~nxa" ren "B:\B_FOLDER\%%~nxa" "%%~na_!random!.%%~xa"
move "%%~a" "B:\B_FOLDER\%%~nxa"
)

追问

只复制1个文件啊,若是存在同名的文件,同样复制过去,只是改下名字

追答

虽然我一开始漏了部分参数,,

但后面的脚本一切正常啊!即改名又能全部移动(貌似不是你要求的复制哈!)

setlocal enabledelayedexpansion 
for /f "delims=" %%a in ('dir /a-d/s/b "A:\A_FOLDER"') do (
if exist "B:\B_FOLDER\%%~nxa" ren "B:\B_FOLDER\%%~nxa" "%%~na_!random!.%%~xa"
copy "%%~a" "B:\B_FOLDER\%%~nxa"
)

追问

怎么把批处理也复制过去了!测试能改名!明天再去试试谢谢拉哈!

追答

那你不要把批处理放在待拷贝的目录,把批处理放在待拷贝目录的同目录下。

setlocal enabledelayedexpansion //启用变量延迟for /f "delims=" %%a in ('dir /a-d/s/b "A:\A_FOLDER"') do ( //利用dir命令获取A目录文件信息,并利用for获取单个文件路径信息if exist "B:\B_FOLDER\%%~nxa" ren "B:\B_FOLDER\%%~nxa" "%%~na_!random!.%%~xa" //如果B目录存在同名文件,就重命名它,并给它添加随机数。copy "%%~a" "B:\B_FOLDER\%%~nxa" //复制A目录文件到B目录)

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-16
批处理搞不定 得做个小软件 估计没人帮你做
相似回答