PowerShellで沢山あるファイルのファイル名を一括変換(Rename-Item)
PowerShellで沢山あるファイルのファイル名を一括変換
最近電子書籍で本を買うことが増えてきた。
BookWalkerという電子書籍の本は、昔はWindowsでオフラインで閲覧できるビューアーのアプリがあったのだけれども、なんか、ブラウザで閲覧する方式に変わって、ネットが無いと閲覧できなくなって、ネット回線があまり無い地域に出張した際、最悪だった(´;ω;`)
と、いう事で、電子書籍の内容を全部スクリーンショットをして画像にして、いつでも読めるようにしたのだけれども、スクリーンショットしたファイル名が、下の画像のようになって今後、他の本を画像にした際に何の本か分からなくなったので、一括でファイル名を変更することに・・
(ちなみに、Windows10では、Winボタン + Alltボタン + Prt Scrボタンの同時押しで、ファイルとしてスクリーンショットを自動的に保存が出来るようになっていて、かなり便利になった)
ファイル名は全部 「スクリーンショット (1)」「スクリーンショット (2)」...「スクリーンショット (217)」のようになっている。
これを
現在 スクリーンショット(1....n)
変更 はねばど_16_1....n <16巻なので、16ってしてます>
となるようにPowerShellで一括変換したいと思いまーす!
PowerShelは、メモ帳で編集も出来るけれど、Windowsには、PowerShellのファイルを編集実行する為のエディターが初めからインストールされているので、そっちを使います!
Windowsのスタートメニューを押した直後に入力する箇所はないけれど、[Power] て入力すると、下の画像みたいアプリケーション候補が表示されます。
この中から、[PowerShell SE]を選ぶと下記のような画面が表示されます。
この状態で開かれた場合は、スクリプトが編集できる状態ではないので、メニューバーより「ファイル」→「新規作成」の順に選択していきます。
すると、スクリプトの編集画面が表示されます。
上側の白い部分を下記のように入力します。
Set-Location "C:\Users\USER\Pictures\Screenshots\はねバド_16" #ファイルが保存されているフォルダーへ移動
$files = get-childitem -file -name #フォルダー内のファイル名を全て取得して$files変数に格納
$count = 0
foreach($file in $files) #$filesに格納されているファイル名を$fileに順番に抜き出して処理
{
$count++
$newname = "はねバド!_16_" + $count + ".jpg"
Rename-Item $file -NewName $newname #ファイル名を設定
}
Get-ChildItem -name
$files = get-childitem -file -name #フォルダー内のファイル名を全て取得して$files変数に格納
$count = 0
foreach($file in $files) #$filesに格納されているファイル名を$fileに順番に抜き出して処理
{
$count++
$newname = "はねバド!_16_" + $count + ".jpg"
Rename-Item $file -NewName $newname #ファイル名を設定
}
Get-ChildItem -name
するとこんな感じで沢山変更する必要があったファイル名が、オイラ~の思った通りの規則でファイル名が変更された!