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

求:复制文件夹而不替换同名文件夹的批处理

[复制链接]
发表于 2009-11-12 17:12:51 | 显示全部楼层 |阅读模式
复制源文件夹D:\电影\中的所有文件(包括子文件夹,下同)到目标文件夹E:\电影,如果目标文件夹中已经存在某个同名的文件夹,则跳过不复制(而不是强行覆盖此文件),包括不复制源同名文件夹内的文件。
  1. @echo off
  2. set src=C:\test\folder1
  3. set dst=C:\test\folder2
  4. cd /d "%dst%"
  5. xcopy /l /s /e . \nul\ | sort /r | more +1 > "%temp%\exist~.txt"
  6. cd /d "%src%"
  7. xcopy /s /e /exclude:%temp%\exist~.txt . "%dst%"
  8. del "%temp%\exist~.txt"
复制代码
(zqz0012005的不替换文件的批处理)

这个只可以达到不替换文件的作用。现在想只要有同名的文件夹就跳过不复制。
 楼主| 发表于 2009-11-16 08:51:16 | 显示全部楼层
怎么没人帮忙?
各位高手帮帮忙吧,我急用。
谢谢!
 楼主| 发表于 2009-12-4 09:18:20 | 显示全部楼层
自己顶下!!!
各位帮下!
谢谢!!!!
发表于 2009-12-4 10:16:42 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad /b d:\电影') do if not exist "e:\电影\%%a" xcopy /s /y "d:\电影\%%a" "e:\电影"
复制代码
 楼主| 发表于 2009-12-8 11:03:03 | 显示全部楼层
首先感谢版主的热情帮助。谢谢!
  这个是能绕过目标中存在的同名文件夹不替换复制啦。可是,没有把源文件夹中的子文件夹(包括里面的文件)完整的复制过去,而是把与目标不同名文件夹中,所有不相同的文件抽取出来,复制到目标文件夹内。
  请再帮帮!
 楼主| 发表于 2009-12-11 19:00:59 | 显示全部楼层

继续救助!
 楼主| 发表于 2009-12-14 19:29:55 | 显示全部楼层
顶顶
求助!
求助!!!
 楼主| 发表于 2009-12-24 13:07:19 | 显示全部楼层
唉!!!!!!
发表于 2009-12-24 23:14:13 | 显示全部楼层
假如下列情况该如何?
d:\电影\aa\bb\cc
e:\电影\aa
e盘已经存在aa文件夹了,这时需要复制d盘的aa下的bb和cc文件夹吗?
 楼主| 发表于 2009-12-25 08:35:52 | 显示全部楼层

回复 9楼 的帖子

不需要。
谢谢老师!
发表于 2009-12-25 12:33:34 | 显示全部楼层
  1. On Error Resume Next
  2. sFolder = "D:\电影"
  3. tFolder = "E:\电影"

  4. Set objFSO = CreateObject("Scripting.FileSystemObject")

  5. Set colSFile = objFSO.GetFolder(sFolder).Files
  6. Set colSSubFolder = objFSO.GetFolder(sFolder).SubFolders

  7. For Each File in colSFile
  8.     File.Copy tFolder, False
  9. Next

  10. For Each Folder in colSSubFolder
  11.     Folder.Copy tFolder, False
  12. Next
复制代码
 楼主| 发表于 2010-1-4 21:39:33 | 显示全部楼层
On Error Resume Next
sFolder = "D:\电影\"
tFolder = "E:\电影\"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set colSFile = objFSO.GetFolder(sFolder).Files
Set colSSubFolder = objFSO.GetFolder(sFolder).SubFolders

For Each File in colSFile
    File.Copy tFolder, False
Next

For Each Folder in colSSubFolder
    Folder.Copy tFolder, False
Next



先谢过!
但怎么用?怎么不起作用?
发表于 2010-1-5 00:22:50 | 显示全部楼层

回复 12楼 的帖子

代码保存为test.vbs
双击即可运行
 楼主| 发表于 2010-1-6 11:31:02 | 显示全部楼层
见笑啦
终于解决啦
万分感谢!!!
我要努力学习,争取天天向上!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 04:18 , Processed in 0.022879 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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