Ich bin ein bisschen ein Neuling mit C # und hoffe, eine Anleitung dazu zu bekommen. -Ich schreibe ein Programm, das eine .bat-Datei ausführt, wenn eine XML-Datei in einem Ordner abgelegt wird, und verschiebe dann die XML-Datei in ein fertiges Verzeichnis.

Das Problem ist, dass die Ausführung der bat-Datei ca. 10 Sekunden dauert und die XML-Datei im Verzeichnis vorhanden sein muss. Meine Verschiebungsmethode verschiebt jedoch die XML-Datei unmittelbar nach dem Ausführen des Befehls .bat file und erzwingt die .bat-Datei selbst Versagen.

Nach der Recherche wäre ein Thread.Sleep oder Task.Delay die Antwort, da ich einfach die Ausführungsmethode anhalten möchte, während die .bat-Datei abgeschlossen ist, und dann die movefile-Methode ausführe, aber ich kann nicht scheinen, die Ausführung zu erfassen / zum Stoppen zu bringen für kurze Zeit, bevor Sie MoveFilesCompleted.MoveComp () aufrufen.

Dies ist, was ich habe, aber ich hoffe auf einen Rat.

 private void _fileWatcher_Created(object sender, FileSystemEventArgs e)
    {
        FileInfo f = new FileInfo(e.FullPath);
        if (f.Extension.Equals(".xml") || f.Extension.Equals(".XML"))
        {
            Logger.log(String.Format("File Created: Path: {0}, Name: {1}", e.FullPath, e.Name));

            try
            {
                exBat.executeBAT();


            }
            catch (Exception ex)
            {
                Logger.log(String.Format("Running the XMLtoINF SQLload failed."));
            }

            Thread.Sleep(15000);

            MoveFilesCompleted.MoveComp();

        }

    }
1
thedewman78 22 Dez. 2015 im 22:54

2 Antworten

Beste Antwort

Angenommen, executeBAT verwendet die Klasse System.Diagnostics.Process zum Starten der BAT-Datei, können Sie warten, bis dieser Prozess beendet ist, indem Sie Process.WaitForExit.

1
adv12 22 Dez. 2015 im 19:59

Es wäre wirklich hilfreich, wenn Sie ein wenig darüber posten würden, wie Sie Ihre Batch-Datei ausführen!

Andernfalls überprüfen Sie hier: So warten Sie, bis meine Batchdatei fertig ist

1
Community 23 Mai 2017 im 10:27