ログなどの大量のファイルで特定の規則のファイル名を一括してリネームしたい時があります。
一つずつリネームするのは手間なのでPowershell を使って一瞬で終わらせます。
コマンドの構成は難しく無いので、覚えておくと便利です。
Program
Get-ChildItem -File "置換対象の検索条件" | Rename-Item -NewName { $_.Name -replace '置換対象の検索条件','置換後' }
サンプル
"-"を削除します
Get-ChildItem -File -path "-" | Rename-Item -NewName { $_.Name -replace '-','' }
説明
1)Get-ChildItem:ファイル取得
-Fileをつけることでファイルのみ抽出される。もしフォルダを外したい場合は-Fileを外してください。
ちなみにlsコマンドはGet-ChildItemのエイリスなので、lsでも同様の結果になります。
-path 抽出する検索条件を設定します。
2)Rename-Item -NewName :指定の文字を置換します
Rename-Item
通常はRename-Item 変更前ファイル 変更後ファイルとしますが、パイプラインにしているので変更前ファイルは指定しなくても動作します。
詳しい置換方法