读取任意多个文件,3个文件为一组,进行批量重命名。
%%%%%批量对文件进行重命名,每次处理len个文件,并将各个文件之间的对应命名关系输出在"先看我.txt"文件中%%%%%%
clc
clear
files= dir('C:\Users\Administrator\Desktop\matlab\*.dat');%%%%%%%%%%%%%%%%%%这个是文件存放的绝对路径
len = length(files); % 获取当前文件的长度
m = 1;
for n = 1:1:len
a = ceil(n/3);%ceil函数是进一法函数,只要有小数部分就进一位
b = sprintf('%01d',a);%%类似"1"命名的文件
oldname = files(n).name;% 获取当前dat文件的名字
if m > 3
m = 1;
end
%%拼接为类似于“_01.dat”
c = sprintf('_%02d',m); % %类似_01命名的文件
temp = num2str(c); % 将数字转换为字符串
idex = char('.dat');% 后缀名
newname1 = strcat(temp, idex); % 将序号和后缀利用strcat函数进行字符串连接
newname2 = strcat(b, newname1); %%得到最终的命名形式
command = ['rename' 32 oldname 32 newname2]; % 使用命令进行重命名
status = dos(command); % 调用dos命令
%%将文件的对应关系导入至当前文件夹的.txt文件中
duiying = [oldname, '-->', newname2];
dlmwrite('先看我.txt',duiying,'-append','delimiter','','newline','pc'); % 写入文本对应信息
if status == 0
disp([oldname, '重命名', newname2]);
else
disp([oldname, '命名失败'])
end
m = m+1;
end
运行结果图: