どうもcoto.です。
今回は複数のファイル名をcsvで指定した名前に付け替える方法のご紹介。
使用ソフトと用意するファイル
使用ソフト
Windows PowerShell
(Windows7以降のPCならインストールしなくても標準で搭載されています。初めて使う場合はスタートボタン右の検索バーに入力するとすぐ見つかります。)
用意するファイル
・リネームしたいファイル群:今回のコマンドでは単一拡張子(jpg)を指定しています。変更可。
・CSV
リネームするファイル群と同じフォルダに rename.csv という名前で入れておきます。内容は以下の通り。1行目を見出し行としてnewname、oldnameと入れておきます。newname列のほうにリネーム後の新しいファイル名、oldname列のほうに現在のファイル名を入れます。順番は関係ありません。
存在しないファイルの行がある場合エラーメッセージは出ますが動作します。
すでに存在するファイル名にリネームする指示がある場合もエラーメッセージは出ますが動作します。
コマンド
# フォルダ指定
[string]$InFolder = '①C:\Users\自分のPCの名前\Desktop\test'
# csv読込
$namedata = Import-Csv $InFolder\rename.csv -Encoding UTF8
# csvの行数カウント(処理のために-1)
$row = ($namedata).count -1
$i = 0
# csvの行数分リネームを繰り返す
while ($i -le $row) {
$target = $InFolder+ "\" + $namedata[$i].oldname + ".jpg"
$New = $namedata[$i].newname + ".jpg"
Rename-Item $target $New
$i +=1
}
解説と使い方
① C:\Users\自分のPCの名前\Desktop\test はファイルやcsvを入れているフォルダの絶対パスです。
jpgではない場合は13行目、14行目の ”.jpg” 部分を書き換えてください。
拡張子がバラバラなファイル群の場合は
$target = $InFolder+ “\” + $namedata[$i].oldname
$New = $namedata[$i].newname
としてしまって、csvにあらかじめ拡張子まで入れておくのが良いと思います。
使い方
1.メモ帳などにコードをコピーし上記の①を設定する。
2.PowerShellを開く
3.1.で作製したコードを全てコピーしてPowerShellの画面上で右クリック
御託
今回のコマンドは、前回ご紹介したファイル名一括取得↓の後に行う処理のために作ったものです。
リネーム前後の名前が法則性のあるものならcsvを経由しないほうが楽ですが、バラバラな場合、一回csv挟むほうが良いと思うので作りました。
どなたかのお役に立てば。
コメント