A Windows GUI tool for bulk file renaming. Combine multiple rules — find/replace, multi-pair find/replace, prefix, suffix, sequential numbering, and case conversion — in a single pass. Bilingual UI (Turkish / English), dark mode, rule profiles, drag-and-drop, and more.
- Find & Replace — literal or regex
- Multi Find/Replace — hundreds of pairs, one per line (
oldName newName) - Prefix / Suffix — prepend / append text (suffix goes before the extension)
- Sequential Numbering —
photo001,photo002, ... (base name + start + padding) - Case Conversion — lower / UPPER / Title Case
- Preview with color-coded status (green = OK, red = conflict, orange = excluded)
- Exclude rows from the preview (double-click, Space, or Delete key)
- Safe two-phase rename —
a ↔ bswaps work correctly - Undo — revert the last operation
- Recursive subfolder traversal
- Extension filter (e.g.
.jpg,.png) - Sorting — by name, modified date, or size (asc/desc)
- Light / Dark theme — switchable at runtime
- Bilingual UI — Turkish and English
- Drag & drop — drop a folder onto the window
- Recent folders — last 10 folders in a dropdown
- Rule profiles — save / load your settings to a
.jsonfile - Keyboard shortcuts — Ctrl+O, Ctrl+P, Ctrl+Enter, Ctrl+Z, Ctrl+S, Ctrl+L, Del, F1
- Tooltips on every button
- About / Contact dialog with clickable links
Download the latest BulkFileRenamer.exe from the Releases page and run it. No Python installation required.
git clone https://github.com/ayberkbgln/bulk-file-renamer.git
cd bulk-file-renamer
pip install tkinterdnd2 # optional, for drag & drop
python toplu_rename.pyRequires Python 3.8+. Tkinter ships with the standard library. tkinterdnd2 is optional — the app works without it, just without drag-and-drop.
pip install pyinstaller pillow tkinterdnd2
python make_icon.py
pyinstaller --onefile --windowed --icon=app.ico \
--add-data "app.ico;." --add-data "icon_256.png;." \
--collect-all tkinterdnd2 \
--name "BulkFileRenamer" toplu_rename.py| Shortcut | Action |
|---|---|
Ctrl+O |
Browse folder |
Ctrl+P |
Preview |
Ctrl+Enter |
Apply |
Ctrl+Z |
Undo |
Ctrl+S |
Save profile |
Ctrl+L |
Load profile |
Del / Space |
Exclude selected |
F1 |
About |
One rule per line:
oldWord newWord
IMG_ Holiday_
DSC_ Photo_
_v1
- Separator: TAB or whitespace (the first run of whitespace is the separator)
- Single token on a line → that text is deleted (the
_v1line strips_v1from names) - Lines starting with
#are treated as comments and skipped
Developed by Ayberk Bağlan.
- GitHub: github.com/ayberkbgln
- LinkedIn: linkedin.com/in/ayberkbaglan
- X / Twitter: @yulewiz
- Email: ayberkbaglan@gmail.com
Issues and pull requests are welcome. Feel free to open an issue for feature requests or bug reports.