忘れないようにしておくためのメモ
■今回環境
Windows10(Powershell) + EXCEL
→フリーソフトは使用不可
連番プレフィックスのファイル名について、連番部分のみを変更する
例.)
1_あい.xlsx
2_うえ.xlsx
3_おか.xlsx
4_きく.xlsx
...
99_hoge.xlsx
ここの数字だけを全ファイル分カウントアップ
1.)外部ツールが使用可能であればそれを使う
→今回は隔離された環境なので使用不可
2.)力技で人力修正
→数ファイルならこれだけど、今回は苦痛なのでナシ
3.)今回の頭の体操
以下手順
Ⅰ.)Powershellで該当ファイルがある任意ディレクトリにアクセスしてファイルリスト抽出
Get-ChildItem -Name
(個人的には ls -Name ですが)
Ⅱ.)ファイルリストをEXCELに貼り付け
A2セルにペタリ
Ⅲ.)昇順ソート
桁違いプレフィックス付きのファイル名は通常ソートしても
1_
11_
12_
..
2_
21_
の並びになってしまうので、プレフィックス部分を数値として抽出して
それを昇順ソートします。
B1セルに
=value(left(A2),find("_",A2)-1))
を入れて、プレフィックスの数値を抽出
ファイル名が入った行全部にコピーして、数字を出力。
A1とB1のセルを選んでフィルタ、B列で昇順ソートする。
Ⅳ.)ファイル名のテキスト部のみの抽出
C列にテキスト部を出力しておきましょう。
C2セルに
=right(A2,(len(A2)-find("_",A2)+1))
をいれると、プレフィックスなしのファイル名が抽出できるので、
ファイル名が入った行全部にコピーして、テキスト部を出力。
Ⅴ.)連番部分とガッチャンコ
D2セルに新しいファイル名を生成しましょう。
=B2+1&C2
+1の数値は要件に合わせて任意に変更してください。
ファイル名が入った行全部にコピーして、新しいファイル名を出力。
Ⅵ.)Powershell用コマンド生成
ren "旧ファイル名" "新ファイル名"
としたいので、E2列に以下のおまじない生成関数を入力
="ren """&A2&""" """&D2&""""
ren "1_あい.xlsx" "2_あい.xlsx"
出力されていれば、期待値通りにできてますよ。
ファイル名が入った行全部にコピーして、おまじないを出力。
Ⅶ.)おまじないをPowershellにコピペ
あとはコマンドざーっと流したら出来上がりです。
ごちそうさまでした。