CubePDF用の一括リネームスクリプト
CubePDFではjpgで保存すると既定ではdocument-001.jpg, document-002.jpg, ...という連番ファイル名になる。
これを変更するにはファイル名入力フォームをマウスでクリックしてファイル名を入力すれば良いのだが、
キーボードだけで済ませたいのでスクリプトを書いてみた。ついでに日時も入れられるようにした。
ps1ファイル
<# .SYNOPSIS 番号違いのファイルを一括リネーム .DESCRIPTION ファイル名末尾に通し番号のついたファイル hoge001.foo のフルパスを引数に与えると、 同じディレクトリの番号違いのファイル hoge002.foo, hoge003.foo, ...も一括して fuga001.foo, fuga002.foo, ... にリネームする。(fugaはユーザー入力) 通し番号のついていないファイル hoge.foo が与えられると、 単にfuga.fooにリネームされる。 また、ファイル名先頭に日時を入れるか選択できる。 #> param([string]$file) $useTimestamp = (Read-Host "ファイル名に日時を入れますか?(y/n)") if($useTimestamp -eq 'y') { $ts = Get-Date -f "yyyyMMdd hh-mm-dd" } else { $ts = '' } $title = (Read-Host "タイトルを入力してください") $parent = Split-Path $file -parent $leaf = Split-Path $file -leaf $basename = $leaf -replace '(\d+)?(\..+)$', '' # hoge001.foo -> hoge gci "$parent" "$($basename)*$($matches[2])" -file | % { # hoge*.fooなファイル $_.FullName -match '(\d+)?\..+$' | Out-Null $parts = ( $ts, $title, $matches[0] ) | ?{ $_ -ne '' } $leaf = $parts -join ' ' $fullname = Join-Path $parent $leaf ren $_.FullName $fullname }
batファイル
powershell.exe "C:\script\rename.ps1" %1
使い方
CubdPDFの外部プログラムにbatファイルを指定して、
> ps | Out-Printer CubePDF
を実行すると、プロセス一覧がCubePDFによってPDF, JPEG等に保存される。
ファイル名にはタイムスタンプ(任意)、指定したタイトルが入る。