标题: [文件操作] 批处理如何找出指定文件夹下(含子文件夹)大小超过/大于指定值的文件? [打印本页]
作者: zhuyuefeng2009 时间: 2016-4-13 14:19 标题: 批处理如何找出指定文件夹下(含子文件夹)大小超过/大于指定值的文件?
本帖最后由 pcl_test 于 2016-4-13 19:24 编辑
或者统计某个文件夹下(含递归的文件夹)所有大小超过某值的文件的数量?
用哪些命名可以解决这个问题?是不是最后要把结果写到一个文件夹里?
作者: flyinnet9 时间: 2016-4-13 14:30
for 语句的 %~zi、forfiles的@fsize都可以
作者: zhuyuefeng2009 时间: 2016-4-13 15:16
回复 2# flyinnet9
恩,统计一个文件夹里的文件知道了。那如果有多级文件夹怎么办?
作者: zhuyuefeng2009 时间: 2016-4-13 15:44
回复 2# flyinnet9
再问一个问题:
for是不是可以只解析到字符串,也可以解析出文件中的内容?(可以人为设置的是不是?)
---for %%A in "C:\aaa.txt" (这样解析出来%%A 是不是就是"C:\aaa.txt"?)
---for /F [<options>] %<variable> IN <filename-set> DO <command> (这样解析出来 %%A 是不是就是<filename-set>中的文件 中的内容 分解出来的 字符串?)
感激不尽!
作者: pcl_test 时间: 2016-4-13 19:27
本帖最后由 pcl_test 于 2016-4-13 23:50 编辑
http://www.bathome.net/thread-2189-1-1.html
http://www.bathome.net/viewthread.php?tid=39809
作者: CrLf 时间: 2016-4-13 19:40
- @hash /s /z::1024
- ::列举大小超过 1KB 的文件
复制代码
作者: zhuyuefeng2009 时间: 2016-4-13 21:07
回复 5# pcl_test
牛
作者: pcl_test 时间: 2016-4-13 23:46
- /*&cls
- @echo off
- rem 列举大小超过1KB的文件
- (for /f "delims=" %%a in ('dir /a-d/b/s') do @echo;%%a*%%~za)|cscript -nologo -e:jscript "%~f0" ">1024"
- pause&exit
- */
-
- var s = '';
- while(!WSH.StdIn.AtEndOfStream){
- var f = WSH.StdIn.ReadLine().split('*');
- if(eval(f[1]+WSH.Arguments(0)))s += f[0] + '\r\n';
- }
- WSH.echo(s);
复制代码
作者: flyinnet9 时间: 2016-4-15 11:07
- ::列举大于1024字节文件
- forfiles /s /c "cmd /c if @fsize gtr 1024 echo.@path 大于1024字节"
复制代码
作者: Nsqs 时间: 2016-4-15 13:23
pcl_test 发表于 2016-4-13 23:46
这斑竹玩的真有意思呵呵, for调用dir又调用cscript. 解释器解读js又需要过滤js中while. 呵呵呵呵呵...
作者: Abson 时间: 2016-4-15 19:25
@echo off
echo 查找中,请稍等。。。
if exist test.txt del /s /q test.txt
for /r d:\ %%i in (*.*) do if %%~zi gtr 1073741824 echo %%~fi %%~zi >>test.txt
::查找的d盘下面大于1G的文件
echo 查找完毕,请看本目录下test.txt文件!!!
pause
作者: codegay 时间: 2016-4-15 19:32
本帖最后由 codegay 于 2016-4-15 19:33 编辑
回复 11# Abson
用code圈代码。
论坛编辑器上有对应功能。复制代码
作者: Abson 时间: 2016-4-16 10:26
回复 12# codegay
ok
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |