フォトファイルに連番を付与するマクロのテストと備忘録です。 もともとの要求というのが,メモ代わりに撮影した写真のファイルに連番を付ける というものです。そもそも元のファイル名が英字4文字と数字4文字なので,さらに 連番を付けるとロングファイルネームになってしまうわけで,通常の ファンクションコールでリネームするのは危険かと思い込んでいたわけです。 それならデジカメの機種等を示す英字4文字は消してしまっておいて 連番を付ければいいかも…ということで試作し, 結果がロングになってしまう場合はどうなるのかいな…と思って実行したら, ロングファイルネームでいけちゃったという……。 DOSのファンクションコールも長いファイル名対応なんすね……ってことで良いのか 悪いのかよくわからないんだけれど,まぁ結果オーライってことで。 ファイラーで選択したファイルを次のようにリネームします。 DIMG0764.JPG → DIMG0764_01.JPG DIMG0765.JPG → DIMG0765_02.JPG DIMG0766.JPG → DIMG0764_03.JPG … 以下,略。 … = RnBnname.def v0.10 = by H.ear 連番を振ったファイル名にリネーム(複数選択対応版) ロングファイルネームでも可能なので,結果がショートに収まらなくてよい. * mad for vz! 1 ^\ "" (s!=3)?. ;ファイラーのみ e=i-, ;<i>:マークファイル処理数 (fl..5)??{ ;マークしていなければ FM[-, ' ' FM], ;カーソル位置のファイルを選択 } &Fi (r)??. ;選択ファイルの先頭へ :a &Fg(pq..137,1) ;ファイル名を取得 fv^=4, #V ;再表示 &Sy(pq..137) ;パス名取得・解析 (si>cx)?{ &Sc(pu,cx) }?pu.0-, ;拡張子抽出 &Sc(pa,bx) pa.(cx-bx)-, ;ファイル名複写と拡張子切除 &Sp(pq..134,"%s_%02d%s",pa,i+1,pu) dx=pq..137, ;old path / pathbuf di=pq..134, ;new path / tmpbuf ax=$5600, &i($21) ;Rename (r)?e++, ?i++, &Fn (r)?>a #U &m("success: %d file(s). / failure: %d file(s).",i,e) *
関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)
返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
- 以下のフォームから自分の投稿記事を修正・削除することができます -