あるイベント参加者とその参加者の提出データ(.doc / .docx /.pdf)をもらいました。
ところが、その参加者と参加証IDは別ということで、「参加登録順+拡張子」を「参加証ID+拡張子」に変えたというお話です(ほとんどWinとExcelの話)。
これも20件ぐらいなら手で打つのですが、500件近くあったのでこうしました。
★1.フォルダ内のファイル名を取得する方法
ファイル名を取得するには、Winならコマンドプロンプトの「dir /B」コマンドが手っ取り早いです。出力先のファイル(csvやtxt)もあらかじめ用意しておきます。
(例)
dir /B C:\Users\ユーザー名\Desktop\フォルダ名 > C:\Users\ユーザー名\Desktop\filename.csv
★2.取得したファイル名から参加証IDを紐付けたい
csvでゲットしたファイル名はExcelで処理してもいいのですが、せっかく?なのでFilemakerで開いて処理してみます。
参加登録順(5桁の数字)+拡張子から、5桁の数字だけ取得します。
(例)
参加登録順の数字フィールド(計算フィールド)= Left ( ファイル名 ; 5 )
参加登録順の数字フィールドをキーに参加証IDをリレーションかルックアップします。
★3.変更したいファイル名の作成(リネームしたいファイル名の作成)
リネームしたファイル名(計算フィールド)= 参加登録順の数字フィールド & Middle ( 取得したファイル名 ; 6 ; 5 )
拡張子ですが、一般的に4文字まで(.docx)と思いますので、ピリオドも含んで5字を取ります。一覧ができればエキスポートします。
★4.リネームを実行する。
あとは、ファイル名変換のフリーウェアをつかえばいいのですが、そういうの入れたくないとかインストールできない環境なら、バッチファイルを作成、実行でも簡単にできます。やり方はここを参考にしました。
エクセルの文字列順に画像をリネームしたい - Excel(エクセル) 解決済 | 教えて!goo
Excelで一覧を開き、ABC列から順にリストにします。
ren 変更前ファイル名 変更後ファイル名
このファイルをテキスト(スペース区切り)で保存すると、拡張子が.prnになりますので、これを.batに変更します。
あとはこれを変換したいフォルダにいれてから実行すると変換されます。
もし、参加登録IDにスペースが含まれているのならうまくいかない気がしますので、一工夫必要です(スペースをトリムするとか)。