0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ファイル名をフォルダごと再帰的に一括置換する【Windows】【PowerShell】

Posted at

作成の経緯

証跡等を撮る際に、項番等を間違えてしまったことが多々あり、後から直す必要があったため作成しました。
また、何度も使う割によくコマンドを間違えてしまうので、備忘録として。

参考

以下の方のを参考にしました。コマンドの大元はそのままなのですが、注意点があるので以下で触れていこうと思います。

コマンド

スクリプト化した際に使い勝手が良いように対話式にしています。
再帰的に置換すると上位で置換したものが置換後の値になりエラーが吐かれるので、エラーを飛ばしています。(中身は問題なく変わります。)

$ChPath = Read-Host "置換するフォルダをフルパスで入力"
$before = Read-Host "置換前の変える部分をワイルドカードなしで入力"
$after = Read-Host "置換後をワイルドカードなしで入力"

cd $ChPath
Get-ChildItem -Recurse 2>$null |Rename-Item -Newname{$_.Name -replace "${before}","${after}"} 2>$null

注意

置換前部分はワイルドカードなし!

よく間違えますが、-replaceのオプションコマンドは一致部分を探すものなので、前後にアスタリスク等のワイルドカードは不要です。ただし、置換部分を一意に絞れる範囲まで書く必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?