Windows PowerShellをさわってみる その1

画像ファイルの整理をしていて、ファイル名がばらばらに付けられているJPEGファイルが山のようにあったので、これを連番を付けて整理したくなった。
手動でやるには結構な量なので、軽くスクリプトでも書こうかなと思ったので、IronPythonで書こうと思ったけど、せっかくなんでPowerShellを使ってみることにした。

仕様

  • 指定したフォルダ配下にあるJPEGファイルを連番を付けたファイル名で指定したフォルダに保存する。

実装

$format = "hoge-{0:#000}"
$srcPath = "C:\Documents and Settings\Administrator\My Documents\My Pictures\ほげ"
$dstPath = "C:\Documents and Settings\Administrator\My Documents\My Pictures\hoge\"

$index = 0
Get-ChildItem "$srcPath" *.jpg | Foreach-Object {
	$fileName = [string]::Format("$format" + ".jpg", $index++)
	$fileName = Join-Path $dstPath $fileName

	Copy-Item $_.FullName $fileName
}

やってる事は単純で、Get-ChildItemでフォルダ配下のJPEGファイルを検索して、その結果をForeach-Objectでループして、Copy-Itemでファイルをコピーするだけ。ファイル名の連番のところだけ.NETのクラスを使った。

慣れの問題やろうけど、若干トリッキーな感じもする。IronPythonのほうが使いやすいかな。