Batch File Renamer

Batch File Renamer

Preview new names before making a ZIP. Original files stay untouched; their contents are copied without conversion.

1–100 files · at most 16 MiB per file, 32 MiB total · ZIP up to 40 MiB · output name at most 255 UTF-16 units and 255 UTF-8 bytes.

Rename rules

Pipeline: split the last extension → choose stem → literal replace-all (blank find does nothing) → stem casing → prefix/suffix → sequence → extension rule. No regular expressions or code execution.

Default: exact spelling comparison and block collisions. NFC + lowercase changes comparison only. All outputs use a conservative basename policy; this does not guarantee portability to every OS, path or extraction app.

A leading-only dot is part of the name: .env has no extension. Only the last extension changes. Rules never convert file contents. Fixed stem and replacement extension are used only when their respective modes are selected.

Choose files or try the synthetic example.

Comments & questions

Batch File Renamer

Create a reviewable rename plan for a selected group of files, then download copies under the accepted names in a new ZIP. Your original files stay untouched. Each input has its own row identity, so two files with the same name remain separate throughout the plan and export.

Key features

  • Apply a fixed or original stem, literal replacement, casing, prefixes, suffixes and numbered sequences in a declared order.
  • Keep, lowercase, uppercase, replace or remove the last filename extension; file contents are not converted.
  • Choose selection order or deterministic name order, with explicit up/down controls for the selection list.
  • Review exact-name collisions or optional NFC-plus-lowercase collisions, conservative reserved names and length limits.
  • Block a conflicting batch or append reviewed numeric suffixes without overwriting another planned name.
  • Export original file bytes in a new STORE ZIP, plus CSV and JSON mappings; cancel reading/packing and discard stale results.

How to use

  1. Choose up to 100 files or load the clearly labeled synthetic example. Review the displayed order and sizes.
  2. Choose name, extension and sequence rules. Selection order uses the displayed list; name order uses UTF-16 string comparison with stable ties.
  3. Create the plan. Inspect every proposed/output name and resolve blocked rows before making a ZIP.
  4. Download CSV or JSON for review, or make the accepted ZIP. Cancel with the button or Escape while working.
  5. Download renamed-files.zip. Its files/ entries contain the original bytes, and its root contains both rename reports.

Use cases

  • Number lesson handouts in a chosen order while preserving their PDF and image bytes.
  • Give a batch of scans one base name and a padded sequence before sharing a new bundle.
  • Inspect case-sensitive versus NFC-plus-lowercase name collisions before choosing output names.
  • Make a traceable archive containing both the renamed copies and their original-to-new mapping.

Frequently asked questions

Does this rename the files on my device?

No. The tool reads selected files only when you request the ZIP and places their unchanged content bytes under new entry names. It does not write to the original folder or request disk-write access. Extract the downloaded archive into a location you choose.

How are numbering and extensions handled?

Numbering follows either the displayed selection list or ascending UTF-16 name order; equal names retain their list order. You can move selected rows up or down. Only the last non-leading, non-trailing dot defines an extension: archive.tar.gz has stem archive.tar, while .env has no extension. Changing an extension does not convert a format.

What is the default collision policy?

The default is exact, case-sensitive string equality with no Unicode normalization, and collisions block the whole ZIP. The optional comparison normalizes names to NFC, lowercases them, then normalizes again for comparison only. Output spelling is preserved. This is not full Unicode case folding or an exact emulation of every filesystem.

Which names are rejected and can automatic suffixes fix everything?

The conservative output policy rejects path separators, control characters, Windows-style forbidden characters and device names, trailing dots/spaces, malformed surrogate characters and names exceeding either 255 UTF-16 units or 255 UTF-8 bytes. Automatic suffixes address duplicate proposals only; all other blocked names must be corrected. Generated suffixes reserve every original proposal so another row is not overwritten. Destination path limits and extraction-app behavior can still differ.

What is preserved in the ZIP and reports?

Every accepted file keeps its content bytes, including binary and empty files. The archive uses STORE compression and a fixed 2000-01-01 timestamp; original permissions, timestamps and other filesystem metadata are not preserved. CSV cells that could begin spreadsheet formulas receive a leading apostrophe, while JSON and ZIP filenames keep their exact declared names.

What are the limits and what happens on cancellation?

Select 1–100 files, at most 16 MiB each and 32 MiB in total; the ZIP is capped at 40 MiB. Name rules are bounded and a replacement expanding a stem past 4,096 units is rejected before allocation. Files are read sequentially, and packing yields between chunks. Cancellation pauses the ZIP stream and discards output; an already pending native file read may finish internally, but its late result is ignored. Changing inputs or rules invalidates the old plan and download.

Privacy

Selected file metadata, rename rules and file bytes stay in this page’s memory. This tool does not upload them or save them to browser storage. Planning reads metadata only; making the ZIP reads the selected contents. Clearing, replacing inputs or leaving the page releases the tool’s references and download URLs. The synthetic example uses real in-memory File objects and does not demonstrate native file-picker permission.

Related Tools

Find & ReplaceHash GeneratorFile Size ConverterWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →