方法:
1、打开你说的那个指定文件夹,然后鼠标右键点击,选择排列图标,然后选择子菜单中的"类型", 然后选中一个类型的所有文件"删除"(注意别真删除了) 然后系统会提示"你确定要将这xx多少项放入回收站吗?" xx项就是文件个数了。
2、求一个批处理命令,生成一个txt文本,只统计大文件夹里每个小文件夹中的文件数量就可以了。
格式为 :文件夹名 数量
@echo offset "file=C:\Users\lytz\Desktop\C常用\bat"
for %%a in (%file%) do for /f "delims=" %%b in ('dir /a-d/b/s *') do (
echo %%b
)
pause
上面的只是查看,如果要查看bat文件的当前目录,可以指定file=./
如果想要将文件列表信息导入list.txt文本中,如下,目录同样可以修改:
@echo offset "file=C:\Users\lytz\Desktop\C常用\bat"
if exist list.txt ( del list.txt )
for %%a in (%file%) do for /f "delims=" %%b in ('dir /a-d/b/s *') do (
echo %%b >>list.txt
)
pause
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
编了个批处理把文件50个一分组,现在遇到个小麻烦,就是不能确定文件夹内文件数目,所以在第一句加了个set,每次要改数字,非常麻烦。现在想要要他根据文件数目自动得到c值:举个例子。如果文件数=140那么就返回c=101 如果文件数=2530 那么就返回2501,就是如果此数在**1-**50或**51-**00之间就返回前一个数字(**1或**51),这样就可以让此批处理最高效率执行,各位高手们多多帮忙,谢谢了
Set c=1951
Set a=1
Set b=50
:MDFolders
md %a%-%b%
if %a%==%c% goto next
Set /a a=%a%+50
Set /a b=%b%+50
goto :MDFolders
:next
Set a=%c%
Set /a b=%a%+49
:MoveFiles
for /L %%q in (%a%,1,%b%) do move *%%q.* %a%-%b%\
Set /a a=%a%-50
Set /a b=%b%-50
if %a%==1 goto end
goto MoveFiles
:end
dir /ad/b/s |sort /r >kill.txt
For /f "tokens=*" %%i in (kill.txt) DO rd "%%i"
del *.* /q
解析:
只是要得到某文件夹下的文件数的话
我想可以使用dir命令来实现
假设目录为C:\的话
那么可以使用以下语句得到
C盘下的文件数目(包括隐藏或系统文件)
dir C:\ /W /B /A-D | find /V /C ""
欲将结果保存到变量C中的话
可以使用以下语句
dir C:\ /W /B /A-D | find /V /C "">D:\_tmp.txt
set /P c=<D:\_tmp.txt
del D:\_tmp.txt
这样%c%中就存储了文件的数目
注意:
之所以使用D:\_tmp.txt而非简单的_tmp.txt
是因为简单的使用_tmp.txt
会在当前目录下生成一个多余文件
如果要处理当前目录的话
将形成干扰
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)