Board logo

标题: [文件操作] 批处理怎么查找固定大小的文件? [打印本页]

作者: wwx0423    时间: 2011-11-15 11:34     标题: 批处理怎么查找固定大小的文件?

我想查找某个文件夹里所有大小等于 0KB的文件, 然后把这些文件的路径导出来。
用windows 搜索能找出这些文件,但是它无法导成清单。 所以我想用指令的方式把他查找出来,导到文本中。
作者: wwx0423    时间: 2011-11-15 11:35

或者文件小于 5KB 的。。。
作者: CrLf    时间: 2011-11-15 11:51

本帖最后由 CrLf 于 2011-11-15 12:05 编辑

大小等于零就说明文件为空,所以可以:
  1. @findstr /vsm ". $" "文件夹\*.txt">list.txt
复制代码
如果是小于 5k,那就老老实实用土办法吧:
  1. @echo off
  2. (for /r "文件夹\" %%a in (*) do if %%~za lss 5120 echo %%~fa)>list.txt
复制代码

作者: HAT    时间: 2011-11-15 11:51

大小等于 0KB的文件?
你的系统里面有小于0KB的文件吗?
作者: wwx0423    时间: 2011-11-15 11:54

我们的文件服务器里很多0KB  1KB,2KB 的文件。 我需要把他们的路径找出来。

指令 (for /r "文件夹\" %%a in (*) do if %%~za lss 5120 echo %%~fa)>list.txt 中 %%~za 的意思是什么呀? ~z 是指大小?size?     %%~fa 有是什么意思啊? 麻烦解释一下,谢谢!
作者: wwx0423    时间: 2011-11-15 12:07

我删掉 @echo off 后执行的结果是:
C:\XXX\Desktop>if 1772544 LSS 5120 echo \\XXXs01\xxx\17前.xls
实际上此文件是 1700K+ 哦。
作者: CrLf    时间: 2011-11-15 12:08

回复 5# wwx0423


    在 cmd 里运行 for /?|find "~" 查看系统帮助相关部分的解释吧...
作者: wwx0423    时间: 2011-11-15 12:24

为什么我执行后,大于5KB的文件都出来了?
作者: wwx0423    时间: 2011-11-15 12:30

哈哈。我找出原因了。  
就是因为我删除了  @echo off
其实它不是列出 文件名,而且是显示了 正在查找该文件。。。  
加上@echo off 就没有显示了。
谢谢你。
作者: 545810831    时间: 2011-11-15 22:01

  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /a /b') do if %%~zi lss 5120 echo %%i
  3. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2