【Power Shell】ファイル名を置換で一括リネームする

サンプルプログラム概要

・ファイル名に含まれる特定の文字列を置換する
・サンプルでは特定の文字列を空文字へ置換 (=特定の文字列を削除) している

サンプルプログラム

# ●fileRenameReplaceTool.ps1

# inputフォルダを指定
$inputFolder = $Args[0]

# 置換対象の文字列
$targetReplaceStr = "_1月|_2月|_3月|_4月"

# 「*.xlsm 」を対象にファイル数の取得。サブフォルダも対象。
$fileList = Get-ChildItem $inputFolder -Recurse `
                                       -include *.xlsm
$fileCount =  $fileList.Count                         

# 対象ファイル数を出力
$message = "置換対象ファイル数:" + $fileCount
echo $message

# 開始日時を出力
$date = (Get-Date).ToString("yyyy/MM/dd HH:mm:ss")
$message = "ファイル名の置換 開始 " + $date
echo $message

# 「*.xlsm 」を対象に置換実行。サブフォルダも対象。
Get-ChildItem $inputFolder -Recurse `
                           -include *.xlsm  `
                           | rename-item -newname {$_.name -replace $targetReplaceStr,''}

# 終了日時を出力
$date = (Get-Date).ToString("yyyy/MM/dd HH:mm:ss")
$message = "ファイル名の置換 終了 " + $date
echo $message

実行前

実行例

PS C:\Users\user> C:\Users\user\Desktop\temp\fileRenameReplaceTool.ps1 C:\Users\user\Desktop\temp\output
置換対象ファイル数:4
ファイル名の置換 開始 2019/11/20 07:04:10
ファイル名の置換 終了 2019/11/20 07:04:10
PS C:\Users\user>

実行後

タイトルとURLをコピーしました