MATLAB對檔案進行批量重新命名
阿新 • • 發佈:2019-02-05
http://blog.sciencenet.cn/blog-412191-615814.html
對資料夾中所有檔案重新命名
但是此程式只能對當前目錄下的檔案進行轉換(?)
clear all clc filename=uigetfile('*.*', 'MultiSelect', 'on'); for i=1:length(filename) oldname=filename{i}; newname=['PR' filename{i}(1:3) '_' filename{i}(5:end)];<span style="color: rgb(51, 102, 153); font-family: Monaco, Consolas, 'Lucida Console', 'Courier New', serif; line-height: 21.6000003814697px;"> % newname是絕對不能有路徑的</span> [status,result]=system(['rename' ' ' oldname ' ' newname]); if status==0 disp(['Rename ' oldname ' sucessfully!']) else disp([oldname ' Error!']) end end
接下來的這段程式碼可以轉換各個資料夾下的檔案
http://www.ilovematlab.cn/thread-438167-2-1.html
clear clc [filename, pathname, filterindex] = uigetfile( ... { % '*.mat','Models (*.mat)'; ... '*.*', 'All Files (*.*)' }, ... 'Pick the image files', ... 'MultiSelect', 'on'); if ischar(filename) filename = {filename}; end for i=1:length(filename) oldname = [pathname filename{i}]; % select=[15:27,29]; select=[1];
if( strcmp(filename{i}( length(filename{i})-3:end),'.gif')==1 ) subject = filename{i}(1:9); middle = filename{i}(11: length(filename{i})-4 ); else subject = filename{i}(1:9); middle = filename{i}(11: length(filename{i}) ); end if(isempty(middle)) newname = strcat(subject, middle, '.bmp'); else newname = strcat(subject,'_', middle, '.bmp'); end % newname = [filename{i}(1) '.mat']; % 此處是第一處錯誤,zype1128指出 % newname是絕對不能有路徑的 cmd=['rename ',oldname,' ', newname]; status = system(['rename ',oldname,' ', newname]); % 此處是第二處錯誤,版主kaaaf123指出 % 系統命令應該是rename oldname newname % 注意空格 if status==0 disp(['檔案 ' oldname ' 重新命名成功']) else disp(['檔案 ' oldname ' 重新命名失敗']) end end