ファイル名一括置換【PowerShell】
指定したフォルダ内にある同じファイル名を一括で置換する方法。
特定のWebサイトからデータを大量にダウンロードしたが、サイト名_曲名.mp3のように
すべてのファイルの前に特定の文字がついており、ファイル管理する上で一括で
サイト名の部分を一括で置換して削除したかったので使用。
5分くらい無駄にかかったのでコピペ用に置いておく。
コピペ用コード
$folderPath = "C:\Users\user\Desktop\sample"
$searchString = "消したい文字列"
$replaceString = ""
Get-ChildItem -Path $folderPath | ForEach-Object {
$newName = $_.Name -replace $searchString, $replaceString
if ($newName -ne $_.Name) {
Rename-Item -Path $_.FullName -NewName $newName
}
}
---------------------------------
PowerShellを起動してそのままコピペし、folderPathに、フォルダのパスを入れる
searchStringに消したい文字列を入れて実行するだけ。
場所と文字列を入れて実行を押します。
不要な部分は削除し、必要な部分だけ残すことができている。
コードの内容は$folderPathのフォルダ内の子アイテムでファイルを全て順番に繰り返していく命令で
Renameでファイルの名前を置換している命令。
特定の文字へファイル名を変更したい場合は$replaceStringに変更後の文字列を入れてあげればよい。
Youtubeや音楽サイトから素材を落とした時に、手間だったので使用。
コピペで使う時があると思うのでここに置いておく。