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

[文件操作] [已解决] 求高手,文件批量复制时先比较大小再决定是否覆盖

[复制链接]
发表于 2014-11-28 10:17:31 | 显示全部楼层 |阅读模式
本帖最后由 nwj@tom.com 于 2014-11-29 15:52 编辑

我下载了一些文件,想把2个不同的文件夹合并到一起。遇到重名文件时,我需要保留体积较小的文件。  当把一个文件夹里面的所有文件移动到另外一个文件夹,遇到相同的名字的文件的时候,自动选择保留小文件。假设文件夹是 F:\A 复制到F:\B
几万个文件一个个判断太麻烦了,所以,曾经在网上找到过一个简单的批处理文件,使用了很多年。近来升级电脑,没注意丢失了这个小小的却万分重要的文件,因此,求各位大神,能否帮忙!
谢谢先!


补充:在网上找到一下这个类似的批处理文件,但不太符合我的要求,请哪位高手帮我修改一下:


”打开记事本程序把下面代码贴进去,修改目录名后,保存到任意位置后缀为.bat双击运行:

@echo off&color f1
:: 假定把d:\a复制到e:\b
set d1=d:\a
set d2=e:\b
cd/d "%d1%"
echo.正在复制,请等候...
for /f "delims=" %%i in ('dir/b/a-d *.txt')do (
  if not exist "%d2%\%%i" (copy "%%i" "%d2%\">nul)else (
     for /f "delims=" %%j in ('dir/b/a-d "%d2%\%%i"')do (
       if %%~zi gtr %%~zj copy/y "%%i" "%d2%\">nul)
))
echo/echo 复制完毕 &ping /n 3 127.1>nul“

发表于 2014-11-28 10:53:41 | 显示全部楼层
xcopy /d 可以吗?它可以实现新文件覆盖旧文件
 楼主| 发表于 2014-11-28 16:44:11 | 显示全部楼层
回复 2# DAIC


如何实现:先比较大小,再自动判断是否覆盖?
发表于 2014-11-28 22:02:37 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. set "srcDir=F:\A"
  3. set "dstDir=F:\B"
  4. set "s=00000000000000000000"
  5. pushd "%srcDir%"
  6. for /f "delims=" %%a in ('dir /a-d /b') do (
  7.         if exist "%dstDir%\%%a" (
  8.                 set "sz1=!s!%%~za"
  9.                 for %%b in ("%dstDir%\%%a") do set "sz2=!s!%%~zb"
  10.                 if "!sz1:~-20!" lss "!sz2:~-20!"  move "%%a" "%dstDir%"
  11.         ) else move "%%a" "%dstDir%"
  12. )
  13. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
nwj@tom.com + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-11-29 01:09:39 | 显示全部楼层
真是高手啊,验证了一下,比原来那个好用多了!真是佩服的五体投地!!万分感谢
发表于 2014-11-29 01:23:34 | 显示全部楼层
回复 5# nwj@tom.com


    那给 apang 大师加分感谢呗~顺便把帖子标题前面加个[已解决]
 楼主| 发表于 2014-11-29 15:53:44 | 显示全部楼层
想给16分全给,怎么不行?对不起了,大师
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 10:58 , Processed in 0.085277 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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