[3dsMax]MAXScript
ファイルのリネーム


3dsMaxの操作ではなく、
とあるフォルダ内のファイルをリネームをするためのMAXScript。

▼やりたい事
桁の揃っていない連番名のファイルがある。連番の桁を揃えたい。
以下の様になってほしい。
1.png → 0001.png
10.png → 0010.png
100.png → 0100.png

▼経緯
bean3Dプリンター用のスライス画像を用意していた。
ファイル名の連番桁数を揃えるため、リネームソフトを使用していたが、
ファイル名を適切な順番通りにリネームしてくれず、プリントに失敗してしまった。
MAXScriptで簡単なファイルの操作ができた気がしたので調べた。
スクリプトを作った後、
リネームソフトの新しいバージョンを試したら問題は出なかったが、
せっかく作ってしまったのでメモとしてブログに残す事にした。

▼処理の概要
指定したフォルダ内のPNGファイルを全部取得して、
forループで一括処理をする。
IF文を使い、文字数により処理を分ける。
 もし、ファイル名の文字数が1なら、ファイル名の先に0を3つ付ける。
 もし、ファイル名の文字数が2なら、ファイル名の先に0を2つ付ける。
 もし、ファイル名の文字数が3なら、ファイル名の先に0を1つ付ける。

▼MAXScript

hako = getFiles "C:\\Users\\ngroku\\Desktop\\フォルダ\\*.png"
basyo = getFileNamePath hako[1]

for i in hako do(
	na = getfilenamefile i

	if na.count==3 do(
		na = "0" + na
	)

	if na.count==2 do(
		na = "00" + na
	)

	if na.count==1 do(
		na = "000" + na
	)

	kaimei = basyo + na + ".png"

	renameFile i kaimei
)

上のMAXScriptを日本語にすると以下の様な感じになる。

指定した場所のPNGファイルを全て取得して、変数hakoに入れる。
パスを変数basyoに入れる。※パスとはファイルのある場所の事

for in ループ(
 ※変数hakoの中身一つずつに対して以下の処理を行う
 ファイル名を変数naに入れる。

 IF文。もし変数na(の中身)が文字数3なら、変数naの中身に0を一つ足す。
 IF文。もし変数na(の中身)が文字数2なら、変数naの中身に0を二つ足す。
 IF文。もし変数na(の中身)が文字数1なら、変数naの中身に0を三つ足す。

 basyo(パス)+変数na(名前)+.png(拡張子)を変数kaimeiに入れる。

 ファイル名を変数kaimeiの中身でリネーム処理。
)

これでファイル名は以下の様にリネームされる。
1.png → 0001.png
10.png → 0010.png
100.png → 0100.png

▼参考リンク
3ds Max 2019 ヘルプ: 外部ファイル メソッド
3ds Max 2019 ヘルプ: ファイル名の解析
3ds Max 2019 ヘルプ: 文字列値

広告

コメントを残す

メールアドレスが公開されることはありません。

スパム対策用の計算式と画像認証です。↓の欄を入力しないとコメントが出来ません。 *

*