【PowerShell】ファイルの拡張子を一括で変更するスクリプト


ファイルの拡張子を一括で変更するスクリプトを作ってみました。

「Change-FileExtension.ps1」
#引数(該当フォルダ, 変更前拡張子, 変更後拡張子)
param($targetDir, $oldExt, $newExt)

#正規表現の指定
$matStr = '.' + $oldExt
$oldStr = '\.'+ $oldExt + '$'
$newStr = '.' + $newExt

#該当するファイルの拡張子を置換
Get-ChildItem -Path $targetDir | Where-Object {$_.Extension -eq $matStr} | Rename-Item -NewName { $_.Name -replace $oldStr, $newStr }

実行例

たとえばフォルダ(C:\work\test)にこのようなファイルがあるとします。



このファイルの拡張子を「log」から「txt」に一括で変更するには次のよう引数を指定します。
引数は左から「該当フォルダ」「変更前拡張子」「変更後拡張子」。
PS C:\work\access> .\Change-FileExtension.ps1 C:\work\test log txt


実行するとこのように拡張子が一括で変更されます。









comments powered by Disqus