【図解あり】ファイル名から指定した文字を一括で削除する【ps1ファイル】

おはようございます、すぎやまです。

この記事では、フォルダにある全ファイルの名前から、指定した文字を一括で削除する方法を紹介します。
この記事を読めば、ファイル名を変更する作業を大幅に短縮できます!

こんな方におすすめ

  • ps1ファイルを使ってファイル名を一括変更したい方
  • ファイル名の付け方のルールを変えようと考えている方
  • ChatGPTを使ったけど、機能しなかった方

ファイルの整理をしたいなど、既存のファイルのファイル名を変更したいことがあります。

ただ、1つ1つ手作業で名称変更をすると
・作業時間が莫大になる
・ミスを引き起こす可能性がある
といったデメリットがあります。

そこでこの記事では、フォルダにある全ファイルの名前から、指定した文字を一括で削除するps1ファイルを紹介します。

この記事内でコードを紹介しますので、それをコピペすれば簡単にps1ファイルが作れます。

それではどうぞ!

機能紹介

例:ファイル名に「_仮」と付いていて、これを消したい

こんなとき、このファイルを使うと・・・

一括でファイル名から「_仮」の部分だけ削除できます。

さっそく作り方を説明します!

ps1ファイルの作り方

ps1ファイルの作り方は、この記事を参照ください。
図解付きでps1ファイルの作り方と使い方を紹介しています!

コード紹介

今回使用したファイルの中身は以下の通りです!

# Prompt user for file extension
$fileExtension = Read-Host "対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...)"

# Prompt user for the string to be removed from filenames
$oldString = Read-Host "ファイル名の中で、削除したい文字を入力後、エンターキーを入力してください:"

# Set the target directory to the current directory
$targetDirectory = Get-Location

# Get all files with the specified extension in the target directory
Get-ChildItem -Path $targetDirectory -Filter *.$fileExtension | ForEach-Object {
    $filename = $_.BaseName
    $newFilename = $filename -replace [regex]::Escape($oldString), ''

    # If the filename has changed, rename the file
    if ($filename -ne $newFilename) {
        $newFilePath = Join-Path -Path $targetDirectory -ChildPath "$newFilename.$fileExtension"
        Rename-Item -Path $_.FullName -NewName $newFilePath
    }
}

Write-Host "Renaming complete."
Pause

このコードをコピーして、メモ帳に張り付けてps1ファイルにしてください。
それだけでファイルが完成します!

使い方

注意! このファイルを使うとファイルの名前が変わってしまいます。
間違えてしまっても戻すことができないので、注意して使ってください!

先ほどの例を使って説明します。

step1:ファイルを起動する

完成したファイルを、対象のファイルのあるフォルダに保存します。

作成したファイルの上で右クリック(①)、
その後「PowerShellで実行」をクリック(②)します。

すると、こんな画面が出てきます。

step2:対象のファイル/削除したい文字を指定する

次に、名前を変更したいファイルの拡張子を入力します。(xlsx、jpeg等のファイルの末尾にあるやつです)
今回の例では「xlsx」と打ち込んでEnterを押します。

その後、削除したい文字を入力します。
今回は「_仮」を削除したいので、「_仮」と入力しEnterを押します。

そうしたら作業完了です!

バッチファイルを使用する場合

今回はps1ファイルを使用しましたが、バッチファイルでも同様の操作ができます。
バッチファイルのほうが都合がよい方は下記をご覧ください。

バッチファイルでファイル名から指定した文字を一括で削除する

ps1ファイルのカスタマイズ

今回はフォルダ内にあるファイルから文字を一括で削除しました。
同様の方法で、一括で置き換えることが出来ます!

そこで、次のような方は、それぞれリンクの記事をご覧ください。
特定の文字を一括で別の文字に置き換えたい

以上、最後まで読んでいただき誠にありがとうございました。

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