Jenkins is aimed to execute shell commands in background mode, not for interactive(UI) mode. When you run start cmd.exe /c c://some/app.exe a new cmd UI is opened and this  will never happen in jenkins.
Single line
If you need to execute a simple batch commands with jenkins :
stage('build') {
      cmd_exec('echo "Buils starting..."')
      cmd_exec('echo "dir /a /b"')
}
def cmd_exec(command) {
    return bat(returnStdout: true, script: "${command}").trim()
}
Here a advanced example :
Multiline
steps {
  echo 'Deploy to staging environment'
  // Launch tomcat
  bat """
    cd c:\\qa\\bin
    dir /a /b
    startup
  """
  
  bat """
    cd c:\\qa\\bin
    startup
  """
  // Code to move WAR to Tomcat
  bat "xcopy /y c:\\webapp\\target\\webapp.war ..."
  bat "xcopy /y c:\\webapp\\target\\webapp.war ..."
}
Example:
Invoke batch file
If you need to execute a batch file with jenkins :
stage('build') {
  dir("build_folder"){
      bat "run_build_windows.bat"
  }
}
or
stage('build') {
  bat "c://some/folder/run_build_windows.bat"
}
Windows paths some time are bizarre :s . Anyway, linux is the best choice to host jenkins.