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

[文件操作] 批处理如何查询大小超过30G的文件?

[复制链接]
 楼主| 发表于 2013-3-28 13:58:36 | 显示全部楼层
本帖最后由 kevinll 于 2013-3-28 14:24 编辑

我这还有问题,关于find.exe, 我指定-path 不管用,在windows上,-path怎么用呢?可以这样吗:-path e:\data
 楼主| 发表于 2013-3-28 14:52:19 | 显示全部楼层
在windows上用UNIX的命令,每次用都要先COPY吗?
 楼主| 发表于 2013-3-28 15:24:00 | 显示全部楼层
试了一个 -size +1048576k,即1G,却查不出来,明明有一个24G的文件,:

find.exe    -name *.DBF -size +1048576k
发表于 2013-3-28 17:33:06 | 显示全部楼层
试试这个:
  1. ndir -s "-cond=size>=1*1024*1024*1024" f:\*.DBF
复制代码
http://thomaslauer.com/comp/ndir
发表于 2013-3-28 18:15:53 | 显示全部楼层
回复 13# kevinll
  1. find.exe . -name "*.DBF" -size +30000000k
复制代码
教程:
http://bbs.chinaunix.net/thread-441883-1-1.html
发表于 2013-3-28 18:20:53 | 显示全部楼层
回复 17# kevinll


    不需要,你可以把它放到当前目录。或者使用命令的完整路径C:\UnxUtils\find.exe
发表于 2013-3-29 08:40:56 | 显示全部楼层
回复 9# kevinll
把SIZE当作字符串来比较,而不是数值
 楼主| 发表于 2013-3-29 11:54:49 | 显示全部楼层
谢谢各位。不过谁给看i看这个问题啊:
试了一个 -size +1048576k,即1G,却查不出来,明明有一个24G的文件:

find.exe    -name *.DBF -size +1048576k
发表于 2013-3-29 12:22:07 | 显示全部楼层
回复 23# kevinll


    "*.DBF"双引号不要丢
发表于 2013-4-1 14:03:20 | 显示全部楼层
  1. @echo off
  2. set ph=e:\b\&set ext=dbf
  3. set FileSize=123456789
  4. for /f "tokens=*" %%i in ("%ph%") do set d=%%~di&set "p=%%~pi"
  5. wmic datafile where "drive='%d%' and path='%p:\=\\%' and extension='%ext%' and FileSize>='%FileSize%'" get FileName
  6. pause
复制代码
发表于 2013-4-2 20:35:43 | 显示全部楼层
@echo off
set /a size=30*1024*1024*1024
for /r %%i in (*.dbf) do if %%~zi GTR %size% echo "%%i" >>check_size.txt
发表于 2013-4-2 23:18:16 | 显示全部楼层
  1. @echo off
  2. set /a min=30*1024*1024*1024
  3. set "min=000000000000000000%min%"
  4. set "min=%min:~-20%"
  5. for %%a in (*.dbf) do (
  6.    set "file=%%a"
  7.    set "size=000000000000000000%%~za"
  8.    setlocal enabledelayedexpansion
  9.    if !size:~-20! gtr !min! echo !file!
  10.    endlocal
  11. )
  12. pause
复制代码
发表于 2013-4-2 23:20:07 | 显示全部楼层
  1. @echo off
  2. set /a min=30*1024*1024*1024
  3. set "min=000000000000000000%min%"
  4. set "min=%min:~-20%"
  5. (echo %min%
  6. for %%a in (*.dbf) do (
  7.    set "file=%%a"
  8.    set "size=000000000000000000%%~za"
  9.    setlocal enabledelayedexpansion
  10.    echo !size:~-20!:!file!
  11.    endlocal
  12. ))>tmp.txt
  13. for /f "tokens=1* delims=:" %%a in ('sort tmp.txt') do (
  14.    if defined flag echo;%%b
  15.    if %%a==%min% set flag=yes
  16. )
  17. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 02:28 , Processed in 0.019144 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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