VB Batch Datei Fehlermeldung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von max8995.

    VB Batch Datei Fehlermeldung

    Hallo,

    ich habe mit mehreren Methoden versucht eine Batch Datei in meinem VB Code auszuführen. Einmal in eine externe bat Datei ausgelagert und einmal direkt im Code via Shell.

    VB.NET-Quellcode

    1. Dim sAppName As String
    2. sAppName = "C:\Users\Max\test.bat"
    3. Call Shell(sAppName, 1)


    VB.NET-Quellcode

    1. Shell("cmd /k ""psexec""")


    Jedes mal erhalte ich die Fehlermeldung:

    Der Befehl "psexec" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.


    Wenn ich die Batchdatei via Doppelklick ausführe, funktioniert es wunderbar. Oder wenn ich einfach nur der Konsole (von mir manuell gestartet) "psexec" eingeben, funktioniert es auch wunderbar.
    Leider klappt es doch nicht wie geplant. Gibt es denn eine Möglichkeit eine Batchdatei auszuführen wie wenn ich doppeltklick darauf mache, damit ich die Fehlermeldung umgehen kann.

    Diese Methode funktioniert nicht, da durch das Programm psexec eine Verbindung zu einem anderen PC aufgebaut wird und irgendwie wird die immer wieder unterbrochen. Wenn ich es mit der Batch Datei mache funktioniert es wieder.

    max8995 schrieb:

    doppeltklick
    Arbeite mit Process und sage dem System, in welchem Verzeichnis es arbeiten soll:

    VB.NET-Quellcode

    1. Dim pr As New Process
    2. pr.StartInfo.FileName = "C:\Temp\test.cmd"
    3. pr.StartInfo.WorkingDirectory = "C:\Temp\" ' dies hier
    4. pr.Start()
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Auch hier kommt wieder die Fehlermeldung

    Der Befehl "psexec" ist entweder falsch geschrieben oderkonnte nicht gefunden werden.


    Ich geh davon aus du hast gemeint test.bat nicht test.cmd oder? Weil ich habe auf eine bat Datei verwiesen.

    Ich habe als WorkingDir System32 genommen. Um das Programm nutzen zu können, mussten die PSTools ins System32 Verzeichnis kopiert werden.


    Edit: Gut ich habe den Fehler gefunden, ich habe die PSTools dann einfach nochmal in einen Ordner kopiert und den Ordner als Working Dir verwendet und nun funktioniert es.
    Danke für eure Hilfe und Mühe!

    max8995 schrieb:

    test.bat nicht test.cmd oder?
    Das ist völlig egal, bei mir gehen beide Extensionen.
    Wenn Du auf die BAT doppelklickst, geht es?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe ich nicht gewusst.

    Das ist völlig egal, bei mir gehen beide Extensionen.


    Ja doppelklick auf die Batch Datei funktioniert einwandfrei. Ich habe jetzt die PSTools die ich ins System32 Verzeichnis kopiert habe auch noch ins WorkDir (in diesem Fall C:/Temp) kopiert. Bei der Batch Datei habe ich dann noch vor psexec "Start" geschrieben und bei psexec noch die Endung "exe" angefügt. Damit funktioniert es jetzt einwandfrei.

    Vielen Dank für deine Hilfe!