【PowerShell】指定フォルダからファイル名を取得しリネームする
EDCBの自動エンコードで必要そうな感じだったので、
PowerShellでリネームのスクリプトを書きました。
スポンサーリンク PowerShellでリネームのスクリプトを書きました。
単純にスクリプトを実行すれば機能します。今までbatにts投げてエンコードしてましたが、
EDCB用にはディレクトリ指定で実行しようかなと。
PowerShellの簡単な使用方法をエントリに書きましたので見てください。
PowerShellを使ってみた Firefoxは情弱のたしなみ
スクリプト内のコメントにもあるように、
指定したフォルダにあるファイルの名前を指定した文字に置き換えてリネームします。
恐らくどんな文字でもリネームできるのではないかと。
$Beforeと$Afterに置換したい文字を追加すれば適用されます。
置換文字は正直横長すぎるとは思うのですが、縦は縦で行使いすぎる気が・・・
$Oldpath = @((Get-ChildItem $Save).FullName) |
@()で囲めば強制的に配列にできます。
$Oldname = @(Split-Path $Oldpath -Leaf) |
-Parentであれば$Oldpathの親ディレクトリのみ
$Newname += $Oldname[$i].Replace($Before[$j],$After[$j]) |
これは.Replaceで$Oldname[$i]に含まれる$Before[$j]を$After[$j]置換しています。
$Newpath += Join-Path $Parent[$i] $Newname[$i] |
「\」は自動的に補ってくれるので便利です。
Move-item -LiteralPath $Oldpath[$i] $Newpath[$i] |
パラメータには-LiteralPathを使用しているので、
ワイルドカードなどを単純な文字として扱えます。
最初はサイト参考ににRename-Itemを使っていましたが、
どうやら角括弧[]をリネームできないようです。
Windows PowerShell を使って複数のファイル名を変更する
programming logbook: ファイル名に角括弧[]がついてるとRename-Itemで失敗する
$Newpath[$i] = Join-Path $Parent[$i] $Newname[$i] |
上の様な感じに配列の指定位置に代入しようとしてエラーよくだしていました。^^;
ではでは
- 関連記事
-
- 【PowerShell】指定フォルダからファイル名を取得しリネームする
- PowerShellを使ってみた
| powershell | 23:40 | comments:0 | trackbacks:0 | TOP↑