How to Remove Text from Filenames in Bulk (Without Renaming One by One)
Renomee Team
Published on September 30, 2026
How to Remove Text from Filenames in Bulk (Without Renaming One by One)
You've got a folder full of files that all share the same unwanted text in their names:
- 200 scanned PDFs with
Scanned_by_Epson_at the start - Video files downloaded with
[1080P]or[BluRay]tags baked in - Design files cluttered with
_final,_v2,_copysuffixes across hundreds of files - Reports exported with a date stamp like
_20260930that you want stripped out
Pressing F2 and editing each one is not an option. This guide covers three methods — PowerShell, PowerRename, and Renomee AI — so you can pick whatever fits your situation.
Different problem? If you need to remove types of characters (brackets, illegal characters, emoji, underscores) rather than a specific word or phrase, see: Batch Remove Special Characters from Filenames
Which Method Should You Use?
| Your situation | Best method |
|---|---|
| Comfortable copying a one-liner into PowerShell | PowerShell (30 seconds) |
| Want a visual interface with a live preview | PowerRename (free, from Microsoft) |
| Complex rules, large batch, or no command-line experience | Renomee (describe in plain English) |
Method 1: PowerShell — One Line, Done
The fastest option if you're comfortable opening a terminal.
Basic: Remove a fixed word or phrase
cd "C:\Your\Folder"
dir | rename-item -NewName {$_.name -replace "text to remove",""}
Real examples:
# Remove "Scanned_by_Epson_" prefix
dir | rename-item -NewName {$_.name -replace "Scanned_by_Epson_",""}
# Remove "_final" suffix
dir | rename-item -NewName {$_.name -replace "_final",""}
# Remove "[BluRay]" tag
dir | rename-item -NewName {$_.name -replace "\[BluRay\]",""}
⚠️ Always preview first. Add
-WhatIfto see changes without applying them:dir | rename-item -NewName {$_.name -replace "_final",""} -WhatIf
Case-sensitive removal
By default, -replace ignores case. To match exact case only, use -creplace:
# Removes "Final" but leaves "final" alone
dir | rename-item -NewName {$_.name -creplace "Final",""}
Remove multiple phrases in one pass
dir | rename-item -NewName {
$n = $_.name
$n = $n -replace "_final",""
$n = $n -replace "_copy",""
$n = $n -replace "_v\d+","" # removes _v1, _v2, _v23, etc.
$n
}
Remove everything after a specific character
For example, filenames like Report_2026_draft.docx — keep only Report:
Get-ChildItem -Path "C:\Your\Folder" -File | ForEach-Object {
$base = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
$ext = $_.Extension
$new = $base -replace '_.*$', ''
if ($new -and $new -ne $base) {
Rename-Item -Path $_.FullName -NewName ($new + $ext)
Write-Host "✅ $($_.Name) → $($new + $ext)"
}
}
_.*$is a regex pattern meaning "underscore followed by everything to the end." Swap_for any character you want to cut at.
Method 2: PowerRename — Visual Preview, No Terminal
PowerRename is free and built into Microsoft PowerToys. Install PowerToys from the Microsoft Store, then right-click your files → PowerRename.
Remove a fixed word (no regex needed)
- Select your files → right-click → PowerRename
- Search: type the text you want to remove (e.g.,
Scanned_by_Epson_) - Replace with: leave empty
- Use regular expressions: leave unchecked
- Review the preview, then click Rename
| Field | Value |
|---|---|
| Search | Scanned_by_Epson_ |
| Replace with | (leave empty) |
| Use regular expressions | ❌ not needed |
Remove a versioned suffix like _v1, _v2 (regex needed)
| Field | Value |
|---|---|
| Search | _v\d+ |
| Replace with | (leave empty) |
| ☑ Use regular expressions | checked |
\d+matches one or more digits.
Remove everything after a specific character
| Field | Value |
|---|---|
| Search | _.* |
| Replace with | (leave empty) |
| ☑ Use regular expressions | checked |
| ☑ Match filename only (not extension) | checked |
PowerRename limitations:
- Each rule runs separately — you'll need multiple passes for multiple phrases
- No undo history; relies on Ctrl+Z
- Regex has a learning curve for non-technical users
Method 3: Renomee — Plain English, No Syntax
Renomee reads your instruction as natural language and handles the rest. No regex, no scripting.
Example:
Files: Scanned_by_Epson_Invoice_Jan.pdf, Scanned_by_Epson_Contract_Feb.pdf
Type:
Remove "Scanned_by_Epson_" from the start of every filename
Result: Invoice_Jan.pdf, Contract_Feb.pdf
Complex rules work too:
Remove _final, _copy, and any _v followed by a number from the end of filenames.
Keep the main name and trim any extra spaces.
Why Renomee for this:
- ✅ Live before/after preview for every file before anything changes
- ✅ One-click undo — full rename history
- ✅ Handles edge cases automatically (empty names, duplicates)
- ✅ One instruction can cover multiple removal rules at once
Common Scenarios
Scenario 1: Strip download-site tags from video filenames
Files: [1080P][BluRay] Inception.mkv, [HDR][IMAX] Dune.mkv
PowerShell:
# Remove square-bracket tags and their contents
dir | rename-item -NewName {$_.name -replace "\[.*?\]",""}
Renomee:
Remove everything inside square brackets (including the brackets) from every filename
Result: Inception.mkv → Inception.mkv, Dune.mkv → Dune.mkv
Scenario 2: Remove a date stamp from filenames
Files: Contract_20260101_ClientA.pdf, Contract_20261231_ClientB.pdf
PowerShell:
Get-ChildItem -File | ForEach-Object {
$base = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
$ext = $_.Extension
$new = $base -replace '_\d{8}', ''
if ($new -ne $base) {
Rename-Item -Path $_.FullName -NewName ($new + $ext)
}
}
Renomee:
Remove the 8-digit date (like 20260101) and the underscore before it from every filename
Result: Contract_ClientA.pdf, Contract_ClientB.pdf
Scenario 3: Clean up multiple version suffixes at once
Files have a mix of _final, _Final, _v2, _copy — you want all of them gone.
PowerShell:
Get-ChildItem -File | ForEach-Object {
$base = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
$ext = $_.Extension
$new = $base
$new = $new -replace "_final|_copy",""
$new = $new -replace "_v\d+",""
$new = $new.Trim()
if ($new -and $new -ne $base) {
Rename-Item -Path $_.FullName -NewName ($new + $ext)
}
}
Renomee:
Remove _final, _copy, and any _v followed by a number from filenames.
Trim any leftover spaces.
Result: Proposal.docx, Design.psd, Agreement.pdf
Scenario 4: Remove text only from the start or end of filenames
Files: DRAFT_ProjectPlan.docx, DRAFT_Q3Report.pptx
PowerShell:
# Remove only from the start
dir | rename-item -NewName {$_.name -replace "^DRAFT_",""}
# Remove only from the end (before extension)
Get-ChildItem -File | ForEach-Object {
$base = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
$ext = $_.Extension
$new = $base -replace "_DRAFT$",""
if ($new -ne $base) { Rename-Item $_.FullName ($new + $ext) }
}
^anchors to the start;$anchors to the end of the base name.
Renomee:
Remove "DRAFT_" from the beginning of every filename, leave the rest unchanged
Result: ProjectPlan.docx, Q3Report.pptx
Before You Run Any Batch Rename
- Back up first — copy the folder to a safe location before starting
- Preview every time — PowerShell: add
-WhatIf; PowerRename: check the preview column; Renomee: review the before/after list - Check for duplicate results — removing shared text can produce identical names; catch this in the preview stage
FAQ
Q: What if the filename becomes empty after removing text?
- PowerShell: Add a guard clause so empty results are skipped:
if ($new -and $new -ne $base) { Rename-Item ... }
- Renomee: Automatically detects empty results and marks them as skipped in the preview — no empty filenames are ever written to disk.
Q: Will files that don't contain the text be affected?
No.
- PowerShell:
-replacereturns the original string unchanged when there is no match — no error, no modification. - Renomee: Files with no match appear as "no change" in the preview list and are left untouched.
Q: The text I want to remove contains parentheses — PowerShell crashes. What do I do?
PowerShell's -replace treats ( and ) as regex syntax. Escape them with [regex]::Escape():
$pattern = [regex]::Escape("(copy)")
dir | rename-item -NewName {$_.name -replace $pattern,""}
With Renomee you don't need to worry about this. Just describe what you want in plain English — Remove "(copy)" from every filename — and the AI handles the escaping automatically.
Q: Can I remove text from filenames inside subfolders too?
- PowerShell: Add
-RecursetoGet-ChildItem:
Get-ChildItem -Recurse -File | rename-item -NewName {$_.name -replace "text to remove",""}
- Renomee: Select all files including subfolders before running the rule — the same instruction applies to every selected file.
Summary
| Method | Best for | Learning curve |
|---|---|---|
| PowerShell | Quick one-liners, scripting, automation | Low (copy-paste works) |
| PowerRename | Visual preview, simple rules | Medium (regex for advanced) |
| Renomee | Complex rules, large batches, no coding | None |
Related
Tags
About the Author
The Renomee team is dedicated to providing users with the best file management solutions, sharing practical tips and in-depth technical articles.
Table of Contents
Start Using Renomee
Download Renomee and experience smart file management today
Quick Links
Related Articles
Batch Remove Special Characters from Filenames: 4 Methods
Batch remove special characters from filenames in Windows 11. Compare 4 methods: manual F2, PowerShell regex, PowerRename, and AI tools. Clean 1000+ files in 15 seconds with step-by-step guides.
Batch Rename 200 PDF Papers in 1 Minute (Instead of 40)
Downloaded 200 papers and they're all named 'Author - 2024 - Some Very Long Title'? Skip the Excel + batch script nightmare. Renomee uses AI to clean up your entire library in under a minute.
Rename Multiple Files with Different Names in Windows 11
How to rename multiple files with different names in Windows 11 — 5 scenarios covering auto-numbering, partial replace, CSV lists, EXIF dates, and PDF content.