一、所需DOS命令
dir [drive:][path] /b >[drive:][path]filename
二、应用实例
如下图,在D盘中,有一个名称为“TQIPC”的文件夹,这个文件夹里面,存放了很多的照片!
请点击输入图片描述
请点击输入图片描述
现在,我们要做的就是,如何让这些照片的名称,自动显示在Excel或记事本里面!
执行菜单 *** 作“开始”→“运行”,d出运行对话框,在里面输入 CMD 并按“确定”键,这个时候,会打开如下图的MS-DOS窗口!
请点击输入图片描述
请点击输入图片描述
之后,如下图一样,输入DOS命令即可!
请点击输入图片描述
请点击输入图片描述
上述的命令输入好之后,就按下回车键,命令就执行了,以上生成的是XLS文件;如果您想生成记事本TXT文件,那么,就输入下图的dos命令即可!
请点击输入图片描述
请点击输入图片描述
就这样,非常简单,文件名的列表文件,就形成了!如下图!
请点击输入图片描述
请点击输入图片描述
通过dos命令的 *** 作,我们就得到了如上图的两个文件了。
下面我们打开temp.xls文件看看,如下图!
请点击输入图片描述
请点击输入图片描述
看到了没有,文件夹中的照片名称,自动就显示在excel表格中了!
该dos命令非常强大,用好dos命令,可省去我们很多的功夫。
三、知识扩展
下面,再给大家一个例子,即,自动根据照片(根据人物名称),建立文件夹。
如果某个文件夹下面,您存放的是某些人物的照片,并且,每个人物的照片,都使用其名字来命名;这个时候,如何要自动根据人物的自动建立其对应的文件夹,也相当方便!
*** 作的方法是,先根据上述的方法,获取所有人物的照片的名称,生成EXCEL文件;
然后,在人物名称列前面,插入一列,并输入MD;
接下来,使用查找替换功能,将excel文件中的人物名称,去掉扩展名(只保留名字);
最后,将excel的内容,复制粘贴到记事本中,现在,我们就得到了形如:“MD 人物名称” 这样的命令格式了。(md 文件名称,该命令格式,是使用来建立文件夹的命令,上述的 *** 作,都是为此做准备!)
将记事本文件保存成为形如:124.bat格式的文件,最后,双击此文件,文件夹名称就自动建立好了!
方法/步骤获取第一层文件夹下的所有文件夹以及数据信息结构体。
例如:主路径是SourcePath
可以通过相对路径代码cd(SourcePath)File1NameFormation=dir('*.')获取当前路径下所有文件夹信息并且将文件夹信息保存在File1NameFormation中。也可以使用绝对路径:File1NameFormation=dir('SourcePath\*.')对于需要列出什么类型的文件可以通过将'*.'改成'*.xxx';其中XXX为类型文件扩展名
对路径扩展进行计数,循环进行分文件夹读取
File1Number=numel(File1NameFormation)或者File1Number=size(File1NameFormation,1)通过获取当前文件夹中有多少层文件夹。
对得到的文件夹通过计数进行循环,进入次文件夹一次继续读取文件。
但是这里需要注意的是,如果是文件夹需要从第三个文件夹读取,因为'.'和'..'一个为当前文件夹一个为上一层文件夹,所以需要从第三个文件读取,可以通过第二个返回上一层文件夹。
可以发现进入子文件后就进入循环了,返回了第一步。在这里可以整合所有的代码
cd(SourcePath)
File1NameFormation=dir('*.')
File1Number=numel(File1NameFormation)
for LoopFile1Number=3:File1Number
NowPath=fullfile(SourcePath,File1NameFormation(LoopFile1Number).name
......................
end
回顾整个过程,重复写的代码很多,在这里我们可以通过运用递归的思维写一个读取数据代码。
这里通过循环来写读取文件函数。
function ReadFile(MainPath,FileType,FileLayer)
%%%%%%%%%%%%%%
%MainPath为主路径,FileType为需要读取的文件类型,FileLayer为文件类型在哪一层文件下
cd(MainPath)
if(FileLay>=0)
PathFileFormation=dir('*.')
PathNumber=numel(PathFileFormation)
for LoopPathNumer=3:PathNumber
Path=fullfile(MainPath,PathFileFormation(LoopPathNumber).name)
ReadFile(Path,FileType,FileLayer-1)
end
else
PathFileFormation=dir('FileType')
PathNumber=numel(PathFileFormation)
for LoopPathNumer=3:PathNumber
Path=fullfile(MainPath,PathFileFormation(LoopPathNumber).name)
end
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)