
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
编了个批处理把文件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 > killtxt
For /f "tokens=" %%i in (killtxt) 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:\_tmptxt
set /P c=<D:\_tmptxt
del D:\_tmptxt
这样%c%中就存储了文件的数目
注意:
之所以使用D:\_tmptxt而非简单的_tmptxt
是因为简单的使用_tmptxt
会在当前目录下生成一个多余文件
如果要处理当前目录的话
将形成干扰
可以使用函数dir,d
=
dir('directory_name')返回一个结构数组,包含了文件夹directory_name下的子文件夹和子文件的一些信息,第1个成员是文件名,第4个成员表示是否为文件夹。要注意的是第1个数组元素和第2个数组元素分别是''和'',表示当前目录和上层目录。
递归获取本文件夹(包括子文件夹)中的文件:
int CountDirectory(CString path)
{
int count = 0;
CFileFind finder;
BOOL working = finderFindFile(path + "\\");
while (working)
{
working = finderFindNextFile();
if (finderIsDots())
continue;
if (finderIsDirectory())
count += CountDirectory(finderGetFilePath());
else
count++;
}
return count;
}
只获取本文件夹中的文件:
int CountDirectory(CString path)
{
int count = 0;
CFileFind finder;
BOOL working = finderFindFile(path + "\\");
while (working)
{
working = finderFindNextFile();
if (finderIsDots())
continue;
if (!finderIsDirectory())
count++;
}
return count;
}
Function FileCount(cPath As String) as Integer
cFile=Dir(cPath & "")
Do While cFile<>""
FileCount=FileCount+1
cFile=Dir
Loop
End Function
这是一段自定义函数,在Excel VBA编辑模式下,主菜单“插入”——“模块”,将代码粘贴到右侧编辑区。如果在工作表状态下使用,在单元格输入:=FileCount("c:\XXX\")就可以得出c:\XXX文件夹下的所有文件个数(不含子文件夹);如果在代码中使用,则可以:nFileCount=FileCount("c:\XXX\")得到文件个数。注意:cPath参数必须以“\”符号结尾。
ls-l/ls-aldu-b/du-klinux的du命令1简介du(showdiskuseage)查看磁盘使用情况2语法du[-abcDhHklmsSx][-L][-X][--block-size][--exclude=][--max-depth=][--help][--version][目录或文件]常用参数:-a或-all为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes显示目录或文件大小时,以byte为单位。-c或–total除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。-D或–dereference-args显示指定符号连接的源文件大小。-h或–human-readable以K,M,G为单位,提高信息的可读性。-H或–si与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。-k或–kilobytes以1024bytes为单位。-l或–count-links重复计算硬件连接的文件。-L或–dereference显示选项中所指定符号连接的源文件大小。-m或–megabytes以1MB为单位。-s或–summarize仅显示总计,即当前目录的大小。-S或–separate-dirs显示每个目录的大小时,并不含其子目录的大小。-x或–one-file-xystem以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。-X或–exclude-from=在指定目录或文件。–exclude=略过指定的目录或文件。–max-depth=超过指定层数的目录后,予以忽略。–help显示帮助。–version显示版本信息。3du命令使用示例1>要显示一个目录树及其每个子树的磁盘使用情况du/home/linux这在/home/linux目录及其每个子目录中显示了磁盘块数。2>要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况du-k/home/linux这在/home/linux目录及其每个子目录中显示了1024字节磁盘块数。3>以MB为单位显示一个目录树及其每个子树的磁盘使用情况du-m/home/linux这在/home/linux目录及其每个子目录中显示了MB磁盘块数。4>以GB为单位显示一个目录树及其每个子树的磁盘使用情况du-g/home/linux这在/home/linux目录及其每个子目录中显示了GB磁盘块数。5>查看当前目录下所有目录以及子目录的大小:du-h“”代表当前目录下。也可以换成一个明确的路径-h表示用K、M、G的人性化形式显示6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:du-shuser-s表示总结的意思,即只列出一个总结的值du-h–max-depth=0user–max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。7>列出user目录及其子目录下所有目录和文件的大小:du-ahuser-a表示包括目录和文件8>列出当前目录中的目录名不包括xyz字符串的目录的大小:du-h–exclude=’xyz’9>想在一个屏幕下列出的关于user目录及子目录大小的信息:du-0huser-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。10>只显示一个目录树的全部磁盘使用情况du-s/home/linux-------------------------------------------------------------------------------------------------------------------------------------------------------------------LinuxLS命令详细介绍lsls命令可以说是linux下最常用的命令之一。它有众多的选项,其中有很多是很有用的,你是否熟悉呢?下面列出了ls命令的绝大多数选项。-a列出目录下的所有文件,包括以开头的隐含文件。-b把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c输出文件的i节点的修改时间,并以此排序。-d将目录象文件一样显示,而不是显示其下的文件。-e输出时间的全部信息,而不是输出简略信息。-f-U对输出的文件不排序。-g无用。-i输出文件的i节点的索引信息。-k以k字节的形式表示文件的大小。-l列出文件的详细信息。-m横向输出文件名,并以“,”作分格符。-n用值UID,GID代替名称。-o显示文件的除组信息外的详细信息。-p-F在每个文件名后附上一个字符以说明该文件的类型,“”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。-q用代替不可输出的字符。-r对目录反向排序。-s在每个文件名后输出该文件的大小。-t以时间排序。-u以文件上次被访问的时间排序。-x按列输出,横向排序。-A显示除“”和“”外的所有文件。-B不输出以“~”结尾的备份文件。-C按列输出,纵向排序。-G输出文件的组的信息。-L列出链接文件名而不是链接到的文件。-N不限制文件长度。-Q把输出的文件名用双引号括起来。-R列出所有子目录下的文件。-S以文件大小排序。-X以文件的扩展名(最后一个后的字符)排序。-1一行只输出一个文件。--color=no不显示彩色文件名--help在标准输出上显示帮助信息。--version在标准输出上输出版本信息并退出。只列出子目录1ls-F|grep/$或者aliassub="ls-F|grep/$"(linux)2ls-l|grep"^d"或者ls-lL|grep"^d"(Solaris)计算当前目录下的文件数和目录数下面命令可以分别计算当前目录下的文件和目录个数:#ls-l|grep"^-"|wc-l----tocountfiles#ls-l|grep"^d"|wc-l-----tocountdir显示彩色目录列表打开/etc/bashrc,加入如下一行:aliasls="ls--color"下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了,其中颜色的含义如下:1蓝色-->目录2绿色-->可执行文件3红色-->压缩文件4浅蓝色-->链接文件5灰色-->其他文件ls-tl--time-style=full-isosshdls-ctl--time-style=long-iso-------------------------------------------------------------------------------------------------------------------------------------------------------------------附:du-sh查看当前文件夹大小du-sh|sort-n统计当前文件夹(目录)大小,并按文件大小排序附送:du-skfilename查看指定文件大小Linux:ls以K、M、G为单位查看文件大小Linux:ls以K、M、G为单位查看文件大小。#manls……-h,--human-readableprintsizesinhumanreadableformat(eg,1K234M2G)……#lscusswarnohupout#ls-ltotal30372-rw-r--r--1rootroot31051909May2410:07cusswar-rw-------1rootroot0Mar2013:52nohupout#ls-lhtotal30M-rw-r--r--1rootroot30MMay2410:07cusswar-rw-------1rootroot0Mar2013:52nohupout#ll-htotal30M-rw-r--r--1rootroot30MMay2410:07cusswar-rw-------1rootroot0Mar2013:52nohupout[root@localhostrice_f2]#ls-lhs总计28G15G-rw-r--r--1rootroot15G06-0414:35alltxt80K-rwx--x--x1rootroot63206-0415:57hashpl371M-rw-r--r--1rootroot371M06-0318:061fa360M-rw-r--r--1rootroot359M06-0318:072fna80K
查看目录下有多少个文件及文件夹需在终端输入
ls
|
wc
-w
查看目录下有多少个文件需在终端输入
ls
|
wc
-c
查看文件夹下有多少个文件,多少个子目录需在终端输入
ls
-l
|wc
-l
若只想知道文件的个数,则需在终端输入
/bin/ls
-l
|grep
^-|wc
-l
你好,方法如下:
选择你要统计的文件夹,你选择的文件夹可以是一个也可以是多个。
点击鼠标右键d出菜单,选择最下面的“属性”。
选择“属性”后,d出对话框。如果您只选择一个文件夹进行统计,则上面有“常规”,“共享”,“自定义”三个选项;如果您选择多个文件夹进行统计,则上面有“常规”,“自定义”两个选项。
选择“常规”,
以上就是关于批处理下怎么统计文件夹内文件数目全部的内容,包括:批处理下怎么统计文件夹内文件数目、如何快速得到文件夹里面文件个数、vc如何获取文件夹中文件个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)