最近在整理影像数据,需要对文件进行批量重命名,
想要把下图的文件按照“组别+序号”进行重命名,即修改为“MBI001,MBI002...MBI011,MBI012,这样命名为了后续图像按顺序处理方面
1.先切换工作路径至需要重命名的文件夹
2.代码如下
%先把matlab的工作文件夹切换到需要重命名的文件夹
clc;
clear all;
% 读取所有以s开头,nii后缀的文件
file = dir('s*.nii');
% 获取文件个数
len = length(file);
% 遍历所有文件
for i = 1:len
if i<10
% 获取第i个文件名
oldname = file(i).name;
% 定义第i个文件名,字符串连接函数strcat,'MBI_00'根据自己的需求进行更换
newname = strcat('MBI_00', int2str(i), '.nii');
% windows重命名命令:rename oldname newname
% 使用windows命令,32为空格的ASCII码
eval(['!rename' 32 oldname 32 newname]);
else
oldname = file(i).name;
% 注意这里是‘MBI_0’
newname = strcat('MBI_0', int2str(i), '.nii');
eval(['!rename' 32 oldname 32 newname]);
end
now_process = strcat('Now I am processing --',' ',newname,'....');
disp(now_process);
end
%如果文件数大于100,可以用以下代码
clc;
clear all;
% 读取所有以s开头,nii后缀的文件
file = dir('s*.nii');
% 获取文件个数
len = length(file);
% 遍历所有文件
for i = 1:len
if i<10
% 获取第i个文件名
oldname = file(i).name;
% 定义第i个文件名,字符串连接函数strcat,'NPS_00'根据自己的需求进行更改
newname = strcat('NPS_00', int2str(i), '.nii');
% windows重命名命令:rename oldname newname
% 使用windows命令,32为空格的ASCII码
eval(['!rename' 32 oldname 32 newname]);
elseif (10<=i)&&(i<99)
oldname = file(i).name;
% 定义第i个文件名,字符串连接函数strcat
newname = strcat('NPS_0', int2str(i), '.nii');
eval(['!rename' 32 oldname 32 newname]);
else
oldname = file(i).name;
% 定义第i个文件名,字符串连接函数strcat
newname = strcat('NPS_', int2str(i), '.nii');
eval(['!rename' 32 oldname 32 newname]);
end
now_process = strcat('Now I am processing --',' ',newname,'....');
disp(now_process);
end