ファイルの名前を一括変更する

50 views (last 30 days)
拓哉
拓哉 on 27 Mar 2024
Commented: 拓哉 on 30 Mar 2024 at 3:00
「0316_02」の名前のファイルの中に「SE00001」~「SE00030」という30個のファイルが入っており、さらにその中にそれぞれ9枚のDICOM画像が入っています。
「SE00001」~「SE00030」のファイル名をaaaからzzzまでアルファベット3桁で順番に名前を変更し、そのファイル内の画像には「aaa_01~aaa_09」のように「ファイル名_数字」のように名前変更したいです。
勉強不足で恐縮ですが、どうぞ宜しくお願いいたします。

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 28 Mar 2024 at 14:44
Edited: Atsushi Ueno on 28 Mar 2024 at 15:08
fld = './0316_02/';
for k = 1:30
mkdir([fld sprintf('SE%05d/', k)]);
for n = 1:9
fclose(fopen([fld sprintf('SE%05d/', k) sprintf('DICOM%d.dcm', n)],'w'));
end
end
ls 0316_02 %「0316_02」の名前のファイルの中に「SE00001」~「SE00030」という30個のファイルが入っており
SE00001 SE00003 SE00005 SE00007 SE00009 SE00011 SE00013 SE00015 SE00017 SE00019 SE00021 SE00023 SE00025 SE00027 SE00029 SE00002 SE00004 SE00006 SE00008 SE00010 SE00012 SE00014 SE00016 SE00018 SE00020 SE00022 SE00024 SE00026 SE00028 SE00030
ls 0316_02/SE00012 % さらにその中にそれぞれ9枚のDICOM画像が入っています。
DICOM1.dcm DICOM2.dcm DICOM3.dcm DICOM4.dcm DICOM5.dcm DICOM6.dcm DICOM7.dcm DICOM8.dcm DICOM9.dcm
str = '0123456789ABCDEFGHIJKLMNOP';
rep = 'abcdefghijklmnopqrstuvwxyz';
for k = 1:30
[X, Y] = ismember(dec2base(k-1,26,3), str);
movefile([fld sprintf('SE%05d/', k)], [fld rep(Y)]);
dr = dir([fld rep(Y) '/*.dcm']);
for n = 1:length(dr)
movefile([dr(n).folder '/' dr(n).name], [dr(n).folder '/' rep(Y) '_' num2str(n,'%02d') '.dcm']);
end
end
ls 0316_02 %「SE00001」~「SE00030」のファイル名をaaaからzzzまでアルファベット3桁で順番に名前を変更し
aaa aab aac aad aae aaf aag aah aai aaj aak aal aam aan aao aap aaq aar aas aat aau aav aaw aax aay aaz aba abb abc abd
ls 0316_02/abc % そのファイル内の画像には「aaa_01~aaa_09」のように「ファイル名_数字」のように名前変更したいです
abc_01.dcm abc_02.dcm abc_03.dcm abc_04.dcm abc_05.dcm abc_06.dcm abc_07.dcm abc_08.dcm abc_09.dcm
  1 Comment
拓哉
拓哉 on 30 Mar 2024 at 3:00
ありがとうございます。
大変勉強になりました。

Sign in to comment.

More Answers (0)

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!