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

PowerShell ps1ファイルのサンプル集,PowerShell

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