Couldn't find a quick answer anywhere, so I wrote a batch script to do exactly what you need:
@echo off
setlocal enableextensions enabledelayedexpansion
set /a count = 0
For %%A in (*.png) DO (
set /a count += 1
echo Processing Image !count!
magick convert -font arial-black -pointsize 250 -fill white -strokewidth 5 -stroke black -gravity southeast -annotate +100+0 "!count!" "%%A" "!count!_%%A"
)
endlocal
pause
If you're new to batch, these are the bits you'll need to pay attention to:
For %%A in (*.png) DO (
This means it will only process the PNG files in this folder. Change it to whatever file extension you're using.
And take a look at the main command:
magick convert -font arial-black -pointsize 250 -fill white -strokewidth 5 -stroke black -gravity southeast -annotate +100+0 "!count!" "%%A" "!count!_%%A"
There are several things you can change, including the font, the color of the number (fill), as well as whether you'd like there to be an outline (stroke and strokewidth, remove if you don't want them.) Gravity determines where the number will be printed, in this case southeast means it'll be in the bottom right corner.
And you'll definitely want to change -pointsize, which controls how big the number is. I chose a value of 250 since the images I needed to number were all 1920x1080, but the font size will need to be changed depending on how big your target image is.
And this...
set /a count = 0
Means the first number printed on an image will be 1. Set this to -1 if you want it to be zero, higher or lower depending on the start number you need.
Hope this helps whoever finds it in the future!