楼 主
复制文件夹,如何自动过滤掉空文件
发表于 2007-12-01 14:10 · 中国 山东 联通数据上网公共出口
新手上路
★
积分 14 发帖 6 注册 2007-11-29 22:11 18年会员 UID 104202 性别 男
状态 离线
用xcopy可以复制文件夹,但是好像不能过滤空文件,另外文件数量比较多,体积也比较大大约有几十G,会不会出什么问题
感谢大家帮忙
[ Last edited by tanny on 2007-12-1 at 03:38 PM ]
第 2 楼
发表于 2007-12-01 14:36 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
第 3 楼
发表于 2007-12-01 16:07 · 中国 山东 联通数据上网公共出口
新手上路
★
积分 14 发帖 6 注册 2007-11-29 22:11 18年会员 UID 104202 性别 男
状态 离线
感谢楼上的回答,可能是我没说清楚,我想排出的不是含“0字节”的文件,而是空文件,就是大小为0的文件
请问怎么实现不拷空文件,另外由于文件比较大希望有比较快的方法
刚看了下for的帮助%~zI说是扩展到文件的大小,可是不知道是怎么个作用,这个能实现吗
第 4 楼
发表于 2007-12-01 16:51 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
测试遍历F盘下所有文件包括子目录,排除0字节文件
@echo off
for /r f:\ %%a in (*) do (
for /f "delims=" %%i in ('echo.%%~za^|findstr /x /v "0"') do echo 文件大小%%i 对应文件"%%a"
)
pause
实际应用
@echo off
for /r 盘符\目录名 %%a in (*) do (
for /f "delims=" %%i in ('echo.%%~za^|findstr /x /v "0"') do xcopy /y "%%a" "目标"
)
pause
外加1个能处理包括系统文件的
@echo off
for /f "delims=" %%a in ('dir /s /b /a-d 盘符\目录名\*') do (
for /f "delims=" %%i in ('echo.%%~za^|findstr /x /v "0"') do echo 文件大小%%i 对应文件"%%a"
)
pause
[
Last edited by fastslz on 2007-12-1 at 05:05 PM ]
第 5 楼
发表于 2007-12-01 17:20 · 中国 山东 联通数据上网公共出口
新手上路
★
积分 14 发帖 6 注册 2007-11-29 22:11 18年会员 UID 104202 性别 男
状态 离线
第 6 楼
发表于 2007-12-01 17:35 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
第 7 楼
发表于 2007-12-01 23:11 · 中国 山东 济南 联通
新手上路
★
积分 14 发帖 6 注册 2007-11-29 22:11 18年会员 UID 104202 性别 男
状态 离线
经测试确实可以,可是如果想把子目录保存下来怎么办呢,现在的代码是把所有文件输入到一个文件中
整个判断文件是否为空的思路是通过读文件吗?似乎速度方面有点问题,不行就把空文件也都复制了算了,到时候再删,只是不知道复制空文件会不会有问题
另外能否解释下"delims=" %%i in ('echo.%%~za^|findstr /x /v "0"')这段代码是什么意思呢
呵呵初次触电批处理,一下问了这么多问题,麻烦了
第 8 楼
发表于 2007-12-01 23:28 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
多个判断文件大小效率当然慢的,绕一个圈又无所谓空文件了,本以为你了解xcopy其实问题还是出在xcopy上,自己xcopy /?看一下吧
第 9 楼
发表于 2007-12-02 18:54 · 中国 山东 济南 电信
新手上路
★
积分 14 发帖 6 注册 2007-11-29 22:11 18年会员 UID 104202 性别 男
状态 离线
xcopy的功能大致也了解了
/Y 复制文件审核设置(隐含 /O)。
现存目标文件。
这个是什么意思呢,不太清楚
第 10 楼
发表于 2007-12-02 19:03 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
/O 复制文件所有权和 ACL 信息。 我也没用过
/X 复制文件审核设置(隐含 /O )。
/Y 复制文件审核设置(隐含 /O)。
现存目标文件。::::::不提示以确认改写一个现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
第 11 楼
发表于 2007-12-03 01:30 · 中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564 发帖 1,127 注册 2006-12-25 22:57 19年会员 UID 74552 性别 男
状态 离线
for /r %i in (*) do set/a 1/%~zi 2>nul&&echo %i -- %~zi
第 12 楼
发表于 2007-12-03 03:59 · 中国 浙江 台州 电信
中级用户
★★
积分 224 发帖 102 注册 2007-11-09 00:19 18年会员 UID 102111 性别 男
状态 离线
第 13 楼
发表于 2007-12-03 19:03 · 中国 山东 济南 电信
新手上路
★
积分 14 发帖 6 注册 2007-11-29 22:11 18年会员 UID 104202 性别 男
状态 离线
见笑了。。。。。。只是79兄弟能解释下代码吗,至少告诉俺源地址和目的地址啊呵呵
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正