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

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

채택된 답변

Atsushi Ueno
Atsushi Ueno 2024년 3월 28일
편집: Atsushi Ueno 2024년 3월 28일
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
拓哉
拓哉 2024년 3월 30일
ありがとうございます。
大変勉強になりました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 ビッグ データの処理에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!