|
tanny
新手上路

积分 14
发帖 6
注册 2007-11-29
状态 离线
|
『楼 主』:
复制文件夹,如何自动过滤掉空文件
用xcopy可以复制文件夹,但是好像不能过滤空文件,另外文件数量比较多,体积也比较大大约有几十G,会不会出什么问题
感谢大家帮忙
Last edited by tanny on 2007-12-1 at 03:38 PM ]
|
|
2007-12-1 14:10 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
2 楼』:
|

|
|
2007-12-1 14:36 |
|
|
tanny
新手上路

积分 14
发帖 6
注册 2007-11-29
状态 离线
|
『第
3 楼』:
感谢楼上的回答,可能是我没说清楚,我想排出的不是含“0字节”的文件,而是空文件,就是大小为0的文件
请问怎么实现不拷空文件,另外由于文件比较大希望有比较快的方法
刚看了下for的帮助%~zI说是扩展到文件的大小,可是不知道是怎么个作用,这个能实现吗
|
|
2007-12-1 16:07 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
4 楼』:
测试遍历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 ]
|

|
|
2007-12-1 16:51 |
|
|
tanny
新手上路

积分 14
发帖 6
注册 2007-11-29
状态 离线
|
『第
5 楼』:
还要麻烦下fastslz兄弟要是含有子目录怎么办
|
|
2007-12-1 17:20 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
6 楼』:
以上代码都包含子目录呀
|

|
|
2007-12-1 17:35 |
|
|
tanny
新手上路

积分 14
发帖 6
注册 2007-11-29
状态 离线
|
『第
7 楼』:
经测试确实可以,可是如果想把子目录保存下来怎么办呢,现在的代码是把所有文件输入到一个文件中
整个判断文件是否为空的思路是通过读文件吗?似乎速度方面有点问题,不行就把空文件也都复制了算了,到时候再删,只是不知道复制空文件会不会有问题
另外能否解释下"delims=" %%i in ('echo.%%~za^|findstr /x /v "0"')这段代码是什么意思呢
呵呵初次触电批处理,一下问了这么多问题,麻烦了
|
|
2007-12-1 23:11 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
8 楼』:
多个判断文件大小效率当然慢的,绕一个圈又无所谓空文件了,本以为你了解xcopy其实问题还是出在xcopy上,自己xcopy /?看一下吧
|

|
|
2007-12-1 23:28 |
|
|
tanny
新手上路

积分 14
发帖 6
注册 2007-11-29
状态 离线
|
『第
9 楼』:
xcopy的功能大致也了解了
/Y 复制文件审核设置(隐含 /O)。
现存目标文件。
这个是什么意思呢,不太清楚
|
|
2007-12-2 18:54 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
10 楼』:
/O 复制文件所有权和 ACL 信息。我也没用过
/X 复制文件审核设置(隐含 /O)。
/Y 复制文件审核设置(隐含 /O)。
现存目标文件。::::::不提示以确认改写一个现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
|

|
|
2007-12-2 19:03 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
11 楼』:
for /r %i in (*) do set/a 1/%~zi 2>nul&&echo %i -- %~zi
|
|
2007-12-3 01:30 |
|
|
YoDe
中级用户
  
积分 224
发帖 102
注册 2007-11-9
状态 离线
|
|
2007-12-3 03:59 |
|
|
tanny
新手上路

积分 14
发帖 6
注册 2007-11-29
状态 离线
|
『第
13 楼』:
见笑了。。。。。。只是79兄弟能解释下代码吗,至少告诉俺源地址和目的地址啊呵呵
|
|
2007-12-3 19:03 |
|