title: Batch Program to Start Windows Audio in Safe Mode
body: <p>This is the code:</p>
  
  <pre><code>@echo off
  
  cls
  echo.
  echo Hello, %username%.
  echo This program will enable the sound service.
  echo.
  
  :case_1
  call:print "Attempting to start Windows Audio..."
  call:check_audio "sc start AudioSrv" "case_2"
  
  :case_2
  call:print "Attempting to start Windows Audio again..."
  call:check_audio "C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted" "case_3"
  
  :case_3
  echo.
  echo Attempting to start dependencies...
  echo.
  call:print "Starting Multimedia Class Scheduler..."
  call:check_active "MMCSS" "sc start MMCSS" "case_4" "Multimedia Class Scheduler"
  call:print "Starting Remote Procedure Call (RPC)..."
  call:check_active "RpcSs" "sc start RpcSs" "case_4" "Remote Procedure Call (RPC)"
  call:print "Starting Windows Audio Endpoint Builder..."
  call:check_active "AudioEndpointBuilder" "sc start AudioEndpointBuilder" "case_4" "Windows Audio Endpoint Builder"
  
  call:print "Attempting to start Windows Audio again..."
  call:check_audio "sc start AudioSrv" "case_4"
  
  :case_4
  echo.
  echo Attempting to start dependencies again...
  echo.
  call:print "Starting Multimedia Class Scheduler..."
  call:check_active "MMCSS" "C:\Windows\system32\svchost.exe -k netsvcs" "error" "Multimedia Class Scheduler"
  call:print "Starting Remote Procedure Call (RPC)..."
  call:check_active "RpcSs" "C:\Windows\system32\svchost.exe -k rpcss" "error" "Remote Procedure Call (RPC)"
  call:print "Starting Windows Audio Endpoint Builder..."
  call:check_active "AudioEndpointBuilder" "C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted" "error" "Windows Audio Endpoint Builder"
  
  call:print "Attempting to start Windows Audio again..."
  call:check_audio "C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted" "error"
  
  :print
  echo %1
  echo.
  
  :check_audio
  :: Checking if Windows Audio is active. If it is unable to be activated, GOTO &lt;label&gt;.
  :: If it has already been activated, GOTO exit.
  for /f "tokens=3 delims=: " %%H in ('sc query "AudioSrv" ^| findstr "        STATE"') do (
      :: Tokenises line containing service's state, pulls out third token.
      :: Tests resulting state against the string, "RUNNING".
      if /i "%%H" NEQ "RUNNING" (
          %1 || goto %2
      ) else (
          goto exit
      )
  )
  
  :check_active
  :: Checking if service is active. If it is unable to be activated, GOTO &lt;label&gt;.
  :: If it has already been activated, state that it is already running.
  for /f "tokens=3 delims=: " %%H in ('sc query "%1" ^| findstr "        STATE"') do (
      if /i "%%H" NEQ "RUNNING" (
          %2 || goto %3
      ) else (
          echo %4 is already running.
      )
  )
  
  :error
  :: States what error the program failed with and exits.
  echo Program failed with error #%errorlevel%.
  exit /b %errorlevel%
  
  :exit
  call:print "The program was successful. Windows Audio is running."
  pause
  exit
  </code></pre>
  
  <p>A little bit spaghetti-ish, but does the job... Sort of.
  When I run it in normal mode, it just goes in an infinite loop, constantly calling the label ":exit" until I CTRL-C out of it. Why is this?</p>