title: running a batch file from C#
body: <p><strong>UPDATE</strong>
  ** STILL LOOKING FOR A CORRECT ANSWER **
  I have the following code in my windows service and I want to run a batch file. I want the command prompt window up so I can see progress</p>
  
  <p>here is my code but my batch file code doesnt work</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Diagnostics;
  using System.Linq;
  using System.ServiceProcess;
  using System.Text;
  using System.IO;
  
      namespace Watcher
      {
          public partial class Watcher : ServiceBase
          {
              public Watcher()
              {
                  InitializeComponent();
              FolderWatcher.Created += FolderWatcher_Created;
              FolderWatcher.Deleted += FolderWatcher_Deleted;
              FolderWatcher.Renamed += FolderWatcher_Renamed;
              }
  
              protected override void OnStart(string[] args)
              {
  
                            // Start the child process.
              Process p = new Process();
              // Redirect the output stream of the child process.
              p.StartInfo.UseShellExecute = false;
              p.StartInfo.RedirectStandardOutput = true;
              p.StartInfo.FileName = "C:\\myFile.bat";
              p.Start();
              // Do not wait for the child process to exit before
              // reading to the end of its redirected stream.
              // p.WaitForExit();
              // Read the output stream first and then wait.
              string output = p.StandardOutput.ReadToEnd();
              p.WaitForExit();
  
  
              }
  
              protected override void OnStop()
              {
              }
  
              private void FolderWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
              {
                  TextWriter writer = new StreamWriter("C:\\folder\\FolderLog.txt", true);
                  writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been created. ");
                  writer.Close();
              }
  
              private void FolderWatcher_Deleted(object sender, System.IO.FileSystemEventArgs e)
              {
                  TextWriter writer = new StreamWriter("C:\\folder\\FolderLog.txt", true);
                  writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been deleted. ");
                  writer.Close();
              }
  
              private void FolderWatcher_Renamed(object sender, System.IO.RenamedEventArgs e)
              {
                  TextWriter writer = new StreamWriter("C:\\folder\\log.txt", true);
                  writer.WriteLine(DateTime.Now + " A new folder/file with name " + e.Name + " has been renamed. ");
                  writer.Close();
              }
  
  
          }
      }
  </code></pre>
  
  <p>It does not execute the batch file. I am a newbie in .net and C# and I am not sure what to do from here.
  thanks</p>