提问人:Miss_Orchid 提问时间:2/8/2015 最后编辑:Luis MendoMiss_Orchid 更新时间:2/8/2015 访问量:66
如何读取多个不同文件夹的多个文件并执行特定命令
How to read, and perform a certain command for multiple files for multiple different folders
问:
因此,我需要为多个不同的文件夹解压缩大量文件(通过 gzip 命令),比如说文件夹 1 到 200(名称文件夹 1 到文件夹 200)。然后,这些文件夹(1 到 200)位于其他父文件夹中:比如说 Parentfolder1-Parentfolder200。结构如下:
Parentfolder1 --> folder1 --> 个文件,这些文件都将被解压缩 (gzip *.gz)
Parentfolder1 --> folder2 --> files
。
。
。
Parentfolder1 --> folder200 --> 文件 Parentfolder2 --> folder1 --> 个文件
。
。
Parentfolder200 --> folder200 -->文件
我在从一个文件夹导航到另一个文件夹,以及从 Parentfolder 导航到 Parentfolder 以使用 dir 命令通过简单的 do 循环执行必要的命令时遇到了一些困难。实现这一目标的最佳方法是什么?先谢谢你。
答:
0赞
Luis Mendo
2/8/2015
#1
对于这种类型的任务,我喜欢使用 fileattrib
。该函数的输入是父文件夹名称。如果以 结尾,则该函数以递归方式工作,并返回文件和文件夹的所有层次结构(可能需要一些时间)。至少这是在 Windows 中发生的事情。\*
fileattrib
所以你可以按照这些思路使用一些东西。在下面的代码中,应用于每个文件的处理仅包括显示其全名(路径);在您的情况下,您将应用所需的命令。
root_folder = 'your\root\folder'; %// root folder of all files you want to process
extension = '.gz'; %// process only files whose name ends with this string
e = numel(extension);
[status, files] = fileattrib([root_folder '\*']); %// add '\*'
for n = 1:numel(files)
if ~files(n).directory &&...
numel(files(n).Name)>=e &&...
all(files(n).Name(end-e+1:end)==extension)
%// file(n) is of the desired type. Do domething with it.
%// Its full name (path) is given by files(n).Name
disp(files(n).Name) %// in this example we only display its full name
end
end
评论
.gz