Ответчик, предоставленный постером, работает, но использует временный файл.
Я нашел способ избежать этого, используя разделитель труб.
Этот код запустит службу, затем подождите, пока она не запустится:
sc start ServiceName
:1
sc query ServiceName>NUL | find "RUNNING">NUL
if errorlevel 1 goto 1
(...)
Перенаправление (> NUL) не является обязательным или, по крайней мере, в моем случае не имеет значения.