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

[文本处理] 已解决--求批处理判断文件大小?

本帖最后由 thp2008 于 2015-4-10 19:34 编辑

要示:我需要在当前目录下运行这个批处理,批处理,自动判断当前目录及目录下的所有子目录中的所有文件,如果发现文件小于1024KB,则将发现的所有小于1024KB的文件名称及扩展名和目录路径记录在当前目录中的一个记事本文件中。

注:目录名和文件名中可能会有空格或中文字符或符号。


我在网上找到一个可以的,但是这个批处理有两个问题,1,这个只能处理当前目录,不能处理目录下的所有子目录中的文件。2,我不需要产生1.txt . 请大家帮我修改一下,谢谢。
@echo off & setlocal EnableDelayedExpansion

for %%i in (*) do (echo %%~fzi >>1.txt)  

for /f "tokens=1* delims= " %%a in (1.txt) do (

    set "zer=%%a"

    set "pat=%%b"

    if !zer! lss 1048576 (

        if not "!pat:~0,-1!"=="%~0" echo "!pat:~0,-1!"& echo "!pat!" >> info.txt

    )

)

if %%~za lss 1048576 …
这样有 bug 哦,1000000000 小于 1048576

TOP

回复 7# pcl_test


    对哟,我真是晕,谢谢!

TOP

系统自带的搜索可以这样设置

TOP

太好了,60000多个文件,3000多个目录,没有这家伙,估计我得找晕。谢谢你,全部找出来了。只用了几秒钟。

TOP

问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in ('dir /a-d /s /b ^|find /v "%~nx0"') do (
  3. if %%~za lss 1048576 (set/a size=%%~za/1024 & echo,%%a !size!KB)
  4. ))>"结果.txt"
  5. pause
复制代码

TOP

回复 2# pcl_test

非常好用,谢谢!
不知道能不能把最后的字节换成KB呀,如果麻烦就算了,不麻烦就在我改下,再次感谢!

TOP

本帖最后由 pcl_test 于 2015-4-10 19:17 编辑
  1. @echo off
  2. (for /f "delims=" %%a in ('dir /a-d /s /b ^|find /v "%~nx0"') do (
  3. if %%~za lss 1048576 echo,%%a %%~za字节
  4. ))>"结果.txt"
  5. pause
复制代码

TOP

返回列表