Пакетный файл возвращает "ошибка деления на ноль" только при запуске с помощью планировщика задач
У меня была проблема с командным файлом, который возвращал "Ошибка деления на ноль" тогда и только тогда, когда он запускался с помощью планировщика заданий. Если запустить вручную, он вел себя как ожидалось.
Мне удалось сузить проблему до следующего фрагмента кода, который возвращал 0 при запуске из планировщика задач, а затем вызывал деление на ноль.
SET numfiles=0
FOR %%x in (*.jpg) DO SET /a numfiles+=1
SET /a rand=%RANDOM% %%numfiles%
SET /a selected=%rand%+1
После часа вырывания волос я нашел решение, которое, хотя и логично, конечно, было не первым, о чем я подумал. Поэтому я делюсь своим решением:
1 ответ
Проблема оказалась в том, что Task Scheduler не запускает пакетные файлы из своих собственных каталогов, а из System32. Следовательно, проблема легко решается путем добавления
cd [relevant path]
к началу сценария.
Надеюсь, мне удалось спасти кого-то еще от необходимости проходить те же самые разочаровывающие шаги.