I want to write a batch file that performs the following operations:
To check a service's state, use sc query . For if blocks in batch files, check the documentation.
The following code will check the status of the service MyServiceName and start it if it is not running (the if block will be executed if the service is not running):
for /F "tokens=3 delims=: " %%H in ('sc query "MyServiceName" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
REM Put your code you want to execute here
REM For example, the following line
net start "MyServiceName"
)
)
Explanation of what it does:
As for your second question, the argument you will want to pass to net start is the service name, not the display name.