Manual service restart is ok - services.msc has "Restart" button, but in command line both sc and net commands lacks a "restart" switch and if restart is scheduled in cmd/bat file, service is stopped and started immediately, sometimes it gets an error because service is not stopped yet, it needs some time to shut things down.
This may generate an error: sc stop sc start
It is a good idea to insert timeout, I use ping (it pings every 1 second): sc stop ping localhost -n 60 sc start