批处理,如何统计当前文件夹内每个文件夹内的文件数目,并记录文件夹 的名称和该文件夹下文件的数目到文本.doc
文本预览下载声明
批处理,如何统计当前文件夹内每个文件夹内的文件数目,并记录文件夹 的名称和该文件夹下文件的数目到文本
2012-03-30 15:53 提问者: sduhtc |浏览次数:341次
文本效果如下:135A.069Z-1 4135A.103Z-1 3135A.104Z-1 6311.003.1SG-34 3……
问题补充:
各位大侠,不是输出到文本,要输出到excel里,名称占A列,数目占B列,无尽感激。
我来帮他解答
满意回答
2012-03-30 21:32
@echo?off
echo?正在处理......
echo?文件夹名;?文件数?LIST.txt
set?sl=
for?/f?delims=?%%a?in?(dir?/ad?/b)?do?(
??dir?/s?/a-d?%%a?|?findstr?个文件??temp_%%a.txt
??set?fd=%%a
??call?:xxxx
??)
del?temp_*.txt?nul
exit
:xxxx
for?/f?tokens=1?delims=??%%b?in?(temp_%fd%.txt)?do?set?sl=%%b
ping??-n?2?nul
echo?%fd%;?%sl%??LIST.txt
goto?:EOF
======================
运行完成生成?LIST.txt?文件,保存着文本格式的结果(用?;隔开)。excel中,打开该文件,选择分隔符为?;即可。经验证通过。?
========感觉可以再精简一下为:
@echo?off
echo?文件夹名;文件数?LIST.txt
for?/f?delims=?%%a?in?(dir?/ad?/b)?do?(
?for?/f?%%s?in?(dir?/s?/a-d?%%a?^|?find?/v?/c?)?do?echo?%%a;%%b??LIST.txt)
已经验证通过.
==================
追问
保存为list.txt时,如何将list改为当前目录的名称呢?也就是说以当前目录的名字命名txt?不胜感激。
回答
先从系统变量中获取当前文件夹名,之后把结果输出到该文件中。批处理如下:@echo offset n=%cd%:aaaif not %n:\=%==%n% set n=%n:*\=% goto aaaecho 文件夹名;文件数%n%.txtfor /f delims= %%a in (dir /ad /b) do ( for /f %%s in (dir /b /s /a-d %%a ^| find /v /c ) do echo %%a;%%s%n%.txt)echo 完成...pause经测试通过运行完成生成 当前文件夹名.txt 文件,保存着文本格式的结果(用 ;隔开)。excel中,打开该文件,选择分隔符为“分号”即可=========另外提醒一下:前面那一个回答最后一行少了一个 /b 而且 %%b 应该为 %%s,粘贴错了(把调试中的一个旧文件内容贴上来了,不好意思)如果问题解决,请采纳一下,以便关闭此问题。
/question/403178643.html
显示全部