Sometimes, the other side balks at a proposed e-discovery protocol, arguing it’s unduly burdensome to rename native files to their Bates numbers. I find that odd because parties have always named files for Bates numbers whilst doing clunky TIFF productions. Where did they think the names of all those TIFF images came from? The truth is, litigants have been naming files to match Bates numbers for as long as we’ve done e-discovery! It’s easy!
It’s one thing to say something is easy and another to prove its simplicity. Certainly, if you use an e-discovery vendor, it’s as easy as saying, “Bates number the native files.” They know what to do. But anyone doing electronic production in-house can add Bates numbers to filenames simply, quickly and cheaply.
There are various ways to do it. You can prepend Bates number (Bates##_filename.ext), append Bates number (filename_Bates##.ext) or replace the filename with the Bates number, storing the original name in a load file. You can even add protective language like “PRODUCED SUBJECT TO PROTECTIVE ORDER.”
Multiple free and low-cost bulk renaming tools are available. I’ve long praised a powerful, flexible too called Bulk Renaming Utility. It’s free for personal use and $93 for commercial purposes; a powerful tool, but overwhelming to some. Seeking a simpler tool and one free to use commercially, I found two: File Renamer Basic and Ant Renamer. Both impressed me with their flexibility and ease of use.
For Mac users, there’s a nice free tool called File Renamer for MacOS 64 bit, which I’ll also touch on below.
Let’s look at how to configure both Windows tools to Bates number a production.
Suppose the production protocol reads:
Bates Numbers. All Bates numbers will consist of a three-digit Alpha Prefix, followed immediately by an 8-digit numeric: AAA########. There must be no spaces in the Bates number. Any numbers with less than 8 digits will be front padded with zeros to reach the required 8 digits. ESI will be Bates numbered by substituting, prepending or appending the Bates number for/to the file name.
Assuming there have been ten other items produced earlier,, we must begin Bates numbering at DEF00000011. For this tutorial, I’ll use just six photos of American coins, but it could as easily be thousands of files of any sort. Here are thumbnails of the exemplar photos:

The table below lists the filenames and MD5 hash values of the files, allowing us to confirm that a renaming tool won’t otherwise alter the evidence.
Original Name | Type | Size | MD5 Hash |
dime.jpg | jpg | 74704 | 9EB20D0367DEF7F43D0B2EBDFCF8D881 |
dollar.jpg | jpg | 79192 | 0A914C48360374CC434047B3CB5DDEEC |
half_dollar.png | png | 104763 | F12B793582DF4863C55A3299769F0885 |
nickel.jpg | jpg | 47589 | 22F1BDE59CE36229B6ED782F1E1CFB92 |
penny.jpg | jpg | 101786 | 81199ED5A45E56C8D23BFB24394C27B4 |
quarter.jpg | jpg | 178375 | D6B866EFEB8F75D7C3395914F5AAB007 |
To demonstrate, I placed working copies of all the files needing Bates numbers in a Desktop folder named Production photos 11-21-20. Inside this folder, I made an empty subfolder called BATES NUMBERED PHOTOS. You don’t have follow suit, but however you approach it, don’t work on the source evidence; instead, create and produce renamed working copies.
File Renamer Basic
After installing and kicking off the program, I set the following parameters:
- Configure the “Folder” and “Copy to” paths.
- Set the three-digit Alpha Prefix required by the Protocol (I used “DEF” for Defendants).
- Set Unique Parameter to “Numbers,” “Increment” by 1, mask with eight zeroes and “Start at 11” (the next unassigned Bates number).
- Set Separator to a single underscore. [While the protocol neither requires nor prohibits adding a separator between the Bates number and filename, I like to add it for clarity]
- In the Filename settings box, check “Place Unique Parameter before Filename.”
- Click “Preview,” and if you’re happy with the preview, click “Apply.”

Running hash values against the renamed files, we see that renaming the files has not altered their hash values.
Name | Type | Size | MD5 Hash |
DEF00000011_dime.jpg | jpg | 74704 | 9EB20D0367DEF7F43D0B2EBDFCF8D881 |
DEF00000012_dollar.jpg | jpg | 79192 | 0A914C48360374CC434047B3CB5DDEEC |
DEF00000013_half_dollar.png | png | 104763 | F12B793582DF4863C55A3299769F0885 |
DEF00000014_nickel.jpg | jpg | 47589 | 22F1BDE59CE36229B6ED782F1E1CFB92 |
DEF00000015_penny.jpg | jpg | 101786 | 81199ED5A45E56C8D23BFB24394C27B4 |
DEF00000016_quarter.jpg | jpg | 178375 | D6B866EFEB8F75D7C3395914F5AAB007 |
Ant Renamer
After installing and kicking off the program, I set the following parameters:
- Using “Add Folders,” navigate to and select the folder with the files to be renamed.
- Click F10 to launch the Options menu and, under the >Processing tab, check the box “Copy instead of Rename,” then click “OK.”
- Under “Actions,” select “Enumeration” and configure the mask as: DEF%num%_%name%%ext%
- Set “Start at:” to 11 and “Number of Digits” to 8.
- Click “Preview of Selected Files” and, if all seems well, click GO on the menu.

Note that these settings will create a Bates numbered set of duplicate files in the same folder as the source files, NOT in the subfolder.
Frankly, it’s harder to describe the task than to complete it. After a few minutes playing with the settings, you’ll easily figure out how to prepend a Bates number, append it or swap it for the original name. Once you’ve gotten the settings where you’d like them, File Renamer Basic allows you to save your custom settings as a profile and apply it to future productions.
I spent only a short time investigating The Mac application FileRenamer, but it was intuitive enough to use without any unmanly reading of directions and took just seconds to configure numbering and set a mask to finish the task. I configured numbering in Settings>Numbering (Initial value: 11, Increment: 1 and Fixed Length with Leading Zeroes: 8) then the mask to include the three-digit alpha prefix, padded numbering and underscore separator to precede the filename (DEF%num%_%name%).
Easy as pie! And while we’re on the subject of pie, HAPPY THANKSGIVING!
Pingback: C’mon! Bates Numbering Native Production is Easy!
Pingback: C’mon! Bates Numbering Native Production is Easy! - Malware News - Malware Analysis, News and Indicators
davidkeithtobin said:
i do a dir /b >> c:\zz.txt
import into msaccess
do a query expression
paste into a notepad file
save as a bat and run
provides all kinds of flexibility
LikeLike
Remington Smith said:
I frequently use Bulk Rename Utility—especially the “Import Rename-Pairs…” action to “add back” the original file name to PDFs that I Bates stamped and renamed with the Bates number through Acrobat Pro.
LikeLike
Eric P. Mandel said:
Craig, thanks for posting on this topic again. I feel like we’ve shouting into the void for more than a decade on what should be a non-controversial issue.
LikeLiked by 1 person
Frank Maas said:
The conventional wisdom (repeated to me more times than I can count) is that Bates-numbering native files simply is not feasible. Thanks for educating me!
LikeLiked by 1 person
craigball said:
Hi Frank! Thanks for the comment. You should check out https://craigball.net/2019/06/14/who-says-you-cant-bates-number-native-productions/ where I delve into why it makes sense to bifurcate Bates numbering and page numbering.
LikeLike
Reuben Han said:
Hi Craig, long time listener first time caller, thanks for this post!
I’ll have to experiment with these tools, but wanted to share one quick, free bulk renaming tool from Kamal Girdher that uses Excel VBA. It’s been a useful tool for straightforward productions and might also be of interest if anyone’s looking for another way to do this in-house:
https://github.com/kamalgirdher/xtremeExcel/blob/master/FileNameChanger.xlsm
Like David I like to extract a list of filenames from the command line, prepare quick formulas for Bates numbers, starting values, and increments, then voila! You have an easy load file generator or file updating tool for organizing folders, production indexes, or even spreadsheet chronologies (if that’s your cup of tea).
I like setting this up in Excel so you can add in macros to “Move” / “Copy” files to a different folder. Running these organizing tools off the same sheet often proves useful.
The Text Function, or =Text(A1,”00000000″) in this example, works well for formatting Bates numbers…. just don’t forget to include the filename extensions in the new filename string like I always do…
Lastly, I’ve also experimented with adding a page number column for the “increment” value, at least in PDF productions (using a PDF page counting tool). Just mentioning for those times when we need Bates #s and Page #s to match for whatever reason… although I share your dream for a world where Bates numbers and page numbers are freed from one another, conceptually speaking, at long last. What a world that would be!
Cheers,
Reuben
Austin, TX
LikeLiked by 1 person
maure12 said:
Craig, as always, a very informative and insightful post.
Thank you.
LikeLiked by 1 person
Pingback: Week 48 – 2020 – This Week In 4n6