PowerShell | ドロップしたファイルから連番を削除するps1ファイル

Windows PowerShellコマンドで作成したps1ファイルにドロップしたファイルからファイル名に付いている連番を除去するps1ファイルのサンプルコードを紹介しています。


確認した環境
OS Windows11 22H2
PowerShell 7.1.3
pドロップしたファイルから連番を削除するps1ファイル
PowerShellコマンドを利用してps1ファイルにドロップしたファイルから連番を除去するps1ファイルのサンプルコードです。
以下のコードでは「ファイル名 – コピー」や「ファイル名 – コピー (2).txt」などのWindows特有の連番付けされたファイル名から「 – コピー」「 -コピー (2)」の部分を除去してリネームします。
# 与えられたパスのファイル名を取得し、変数$file_nameに格納
$file_name = [System.IO.Path]::GetFileName($args[0])
# $file_name変数内の文字列 ' - コピー' を除去
$file_name = $file_name -replace ' - コピー', ''
# $file_name変数内の文字列 ' (\d+)' を除去
$file_name = $file_name -replace ' \(\d+\)', ''
# $args[0]に指定されたファイル名を$file_nameに変更
Rename-Item $args[0] $file_name
GetFileName()
でファイル名を取得、replace
で連番部分を除去、Rename-Item
でファイル名を変更しています。
元の拡張子は保持されます。
連番部分が除去されたファイルが同じ階層に存在する場合は、リネームは実行されません。
ps1ファイルを実行ファイルとして利用可能にするには以下のページにて紹介しています。
PowerShell | ps1ファイルをダブルクリックで実行可能にする方法 | ONE NOTES
ディスカッション
コメント一覧
まだ、コメントがありません