Tuve un problema con un archivo por lotes que devolvió "Divide by zero error" si, y solo si, se ejecutó usando el Programador de tareas. Si se ejecuta manualmente, se comportó como se esperaba.
Me las arreglé para reducir el problema al siguiente fragmento de código, que devolvió 0 cuando se ejecutó desde el Programador de tareas, y luego causó la división por cero.
SET numfiles=0
FOR %%x in (*.jpg) DO SET /a numfiles+=1
SET /a rand=%RANDOM% %%numfiles%
SET /a selected=%rand%+1
Después de una hora de arrancarme el cabello, encontré una solución que, aunque lógica, ciertamente no fue lo primero en lo que pensé. Por lo tanto, estoy compartiendo mi solución: