PowerShell任意のフォルダ内ファイル名を連番化するスクリプト

PoweShell コンピュータ
PowerShell

指定のフォルダ内にあるファイルを3桁の数値の連番+拡張子でファイル名を変更します。
ファイルの種類を指定する場合は$Filterパラメタに”*.jpg”等を指定してください。

実行するとファイル名は元に戻せませんので、もし必要があればファイルのバックアップを取ってからお試しください。

ファイル名の先頭に任意の文字にしたい等、書式を変更する場合は「# 変更後のファイル名」の次の行を変更してください。

#
# 指定フォルダのファイルを連番で変更する
# 
# $TagetDir...連番化したいファイルがあるディレクトリ
# $Filter...フィルター
# 
param(
    [string]
    $TargetDir =  $env:USERPROFILE + "\Videos",
    [string]
    $Filter = "*.*"
)

$ErrorActionPreference = "stop"

$count = 0
Get-ChildItem -LiteralPath $TargetDir -Filter $Filter | ? {
    -not($_.PSIsContainer)
}| % {
    $count = $count + 1
    $srcpath = $_.FullName
    # 変更後のファイル名
    $dstpath = Join-Path $_.DirectoryName ($count.ToString("000") + $_.Extension)
    if (-not(Test-Path $dstpath)) {
        Move-Item $srcpath $dstpath
    }
}

実行例

E:\script\RenameSEQ.ps1 -TargetDir E:\picture -Filter *.jpg

実行前

実行後

コメント