web-dev-qa-db-ja.com

PowerShell:ディレクトリ内のすべてのファイルにプレフィックスを追加するにはどうすればよいですか?

現在、私は次のようなコマンドレットを使用しています:

dir | rename-item -NewName {$_.name -replace "-","_"}

しかし、ディレクトリ内のすべてのファイルのファイル名にプレフィックスを追加する必要があります。
各ファイル名の長さを予測することはできないので(さまざまです)、一連の.ワイルドカードを使用することはできません。

ファイル名が何であっても、各ファイル名の先頭に固定フレーズを追加する必要があります。

3
Giffyguy

正規表現の代替アプローチは、単純な文字列操作を使用して新しいファイル名を作成することです。

Get-ChildItem | Rename-Item -NewName { "Prefix_" + $_.Name }
9
Seth

あなたはかなり近いです。

  • -replaceはRegEXを使用し、正規表現では最初に^でアンカーします
  • サフィックスについては、同様に行末のアンカーを$で置き換えることができます
  • 名前が変更されたファイルの繰り返しを避けるために、パイプラインの最初の要素を括弧で囲みます。

(Get-ChildItem -File) | Rename-Item -NewName {$_.Name -replace "^","Prefix_"}
5
LotPings