kostenloser Webspace werbefrei: lima-city


[VB] .bat ausführen und beenden

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    softtrink

    Kostenloser Webspace von softtrink

    softtrink hat kostenlosen Webspace.

    Hallo zusammen,
    in meinem derzeitigen Projekt soll eine .bat gestartet werden und nach Abschluss ihrer Aufgabe sofort beendet werden.

    Ich habe es damit probiert:
    Process.Start(path)


    Jedoch wird die .bat kurz gestartet und sofort beendet.

    und mit:
    Shell(path)

    wird sie erst garnicht gestartet.

    Wie kann ich sie starten und erst nach getaner Arbeit schließen?
    Danke im Voraus.

    VG

    Beitrag zuletzt geändert: 14.2.2013 15:02:14 von softtrink
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    softtrink schrieb:
    Jedoch wird die .bat kurz gestartet und sofort beendet.
    Das soll was bedeuten? Erledigt die BAT ihre Aufgabe oder nicht? Oder wie soll man das interpretieren?
  4. Autor dieses Themas

    softtrink

    Kostenloser Webspace von softtrink

    softtrink hat kostenlosen Webspace.

    hackyourlife schrieb:
    softtrink schrieb:
    Jedoch wird die .bat kurz gestartet und sofort beendet.
    Das soll was bedeuten? Erledigt die BAT ihre Aufgabe oder nicht? Oder wie soll man das interpretieren?


    Die BAT hat eine Aufgabe, die hinterher sogar sichtbar ist und etwas länger dauert. Wenn ich die BAT per Hand starte, dann funktioniert alles perfekt. Sprich die BAT erledigt ihre Aufgabe, wenn ich sie per Code ausführe nicht.

    Beitrag zuletzt geändert: 14.2.2013 15:06:35 von softtrink
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Hast du schonmal versucht statt die BAT-Datei direkt zu starten folgenden Befehl auszuführen?
    cmd.exe /c <pfad-zur-bat>.bat
    Als Code würde das vermutlich irgendwie so aussehen:
    Process.Start("cmd.exe", "/c C:\myPath\myFile.bat")
  6. Autor dieses Themas

    softtrink

    Kostenloser Webspace von softtrink

    softtrink hat kostenlosen Webspace.

    Dei BAT startet zwar wird aber sofort beendet und erledigt ihre Aufgabe nicht!

    Ich hab http://board.gulli.com/thread/1640287-vb-net-batch-ausfuehren/ gefunden. Da wurde so wie mir es scheint eine Lösung gefunden. Jedoch versteh ich die Lösung nicht. Vielleicht kann mir das jemand erklären?

    Beitrag zuletzt geändert: 14.2.2013 15:30:54 von softtrink
  7. m**********n

    Was macht deine Batch?

    Die Lösung, die in dem Gulli Thread beschrieben ist, das Working Directory zu setzen. Was ist das?
    Das Working Directory ist der Pfad, von dem ein Programm ausgeführt wird. Bei der cmd.exe ist das C:\Windows\System32\

    Im Klartext: wenn du eine rename.bat hast und damit eine Datei, die in dem selbem Verzeichnis, wie die Batch liegt, umbenennen willst und der Pfad zur Datei relativ ist, dann musst das Working Directory zu dem Pfad setzen, in dem sich die Batch befindet, ansonsten wird die Batch die Datei ausgehend von C:\Windows\System32\ die Dateien umbennen.

    Lg
    mator
  8. Einmal was macht deine Batch datei und zweitens es ist klar das sie nicht angezeigt wird denn der Befehl Shell() führt den befehl im hintergrund aus und der Befehl Process.Start() nach dem starten auch deshalb siehst du deine Batch nicht da sie im Hintergrund gestartet wird probiers mal mit cmd.exe /k tolle.bat damit sollte es offen bleiben.

    Mfg FFS2309
  9. Keine Ahnung, ob dir das noch hilft, aber es gibt auch einige Parameter beim Aufruf vom Befehl "Shell".
    Wir müssten aber halt wissen, was deine batch Datei machen soll.

    Also entweder (wenn noch nicht getan) würde ich ans Ende der Batch-Datei ein "PAUSE" einbauen, damit man etwaige Fehler aus der Konsole auslesen kann. Sollte dies nicht helfen/du hast es bereits eingebaut, würde ich den zweiten Parameter des "Shell"-Befehls angeben:

    shell("Pfad/zur/Batch-Datei.bat", true)


    Der zweite Parameter (Wait As Boolean = True) lässt dein Programm solange warten, bis deine Batch-Datei komplett durchgelaufen ist.
    Dies ist z.B. hilfreich, wenn man ein externes Programm (z.B. Editor, Word, Firefox, etc.) starten will, aber einen gewissen Code erst ausführen will, wenn man das externe Programm beendet hat.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!