2023年3月22日水曜日

Powershellでフォルダ内のファイル名の特定の文字列を一括置換でファイルをリネームする

この記事では、PowerShellを使ってフォルダ内のファイル名に一括で文字列を置換し、ファイルをリネームする方法を紹介。ただし、日本語のフォルダ名やサブフォルダがある場合には、うまく動作しない可能性があるため、要注意。

とりあえず1階層、かつ英語のフルパスならこれで問題なく動いた。

# 変更対象のフォルダを指定する
$folderPath = "C:\tmp\"

# 変更前の文字列を指定する
$oldString = "OldText"

# 変更後の文字列を指定する
$newString = "NewText"

# フォルダ内のファイルを取得し、ファイル名を変更する
Get-ChildItem $folderPath | ForEach-Object {
    $newName = $_.Name -replace $oldString, $newString
    $newPath = Join-Path $_.Directory.FullName $newName
    Rename-Item $_.FullName -NewName $newName -ErrorAction SilentlyContinue
}

上記コードでは、大きく次のステップを実行している。

1.各ファイルのファイル名に対して、$oldStringを$newStringに置換した文字列を作成し、$newName変数に代入。

2.次に、$newNameと各ファイルの親フォルダのパスを使用して、新しいファイルパスを作成し、$newPath変数に代入。

3.最後に、Rename-Item cmdletを使用して、各ファイルのファイル名を$newNameに変更。

以上の手順で、大量に保存ていたファイルの命名規則を後から変更するといったシチュエーションで活用できる。

0 件のコメント:

ウェブサイトのURLにおけるトレイリングスラッシュの解釈と有無による動作の違い

インターネットが現代社会におけるコミュニケーションの基盤となっている今日、ウェブサイトのURLはビジネスや個人ブランディングにとって重要な役割を果たしています。URLは単にウェブページへの経路を示すだけでなく、SEO(検索エンジン最適化)においても重要な要素です。この記事では、U...