ausführen einer batch-Datei aus C#

UPDATE
** NOCH AUF DER SUCHE FÜR EINE RICHTIGE ANTWORT **
Ich habe den folgenden code in meine windows-Dienst, und ich möchte ausführen einer batch-Datei. Ich will das Fenster der Eingabeaufforderung, damit ich sehen kann den Fortschritt

hier ist mein code, aber meine batch-Datei-code funktioniert nicht

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();
            }


        }
    }

Es nicht führen Sie die batch-Datei. Ich bin ein Neuling in .net und C#, und ich bin nicht sicher, was zu tun ist von hier.
Dank

  • Können Sie in irgendeiner Weise bestätigen, dass der Dienst ausgeführt wird?
  • service läuft einwandfrei. Ich kann es starten es von der Kommandozeile aus. Ich kann umbenennen / löschen / Ordner hinzufügen, und es protokolliert die info. Also ich bin 100% sicher, dass der Dienst ausgeführt wird just fine
  • Nur als Anmerkung: sollten Sie wickeln Sie Ihre StreamWriters in using sonst könnte man offen lassen, Datei-handles herum.
InformationsquelleAutor Autolycus | 2011-08-18
Schreibe einen Kommentar