Comandozeile ausführen

  • Sonstige

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Comandozeile ausführen

    Hallo zusammen Ihr Profis. Ich habe mal wieder ein scheinbar simples Problem welches ich aber nicht gelöst bekommen.

    Ich muss aus Catia heraus via VBA Datensätze in einen Converter senden. Dieser funktioniert seiten eines Drittanbieter beispielsweise als Commandozeile. Damit ich das vernünftig in unseren Workflow übertragen kann muss ich die Kommandozeile auch aus unserem VBA heraus aufrufen.

    Nun stellt sich folgendes Problem. Wenn ich den CMD Befahl los sende, dann erscheint zwar das CMD Fenster, aber mehr auch nicht. Die Befehle dahinter scheinen nicht zu starten.
    Hier die Commandozeile wie ich Sie manuell aufrufe und funktioniert indem ich ein die Eingabeaufforderung starte und die Zeilen rein kopiere:

    "L:\cat\v5\design\01_MTK\01_Methoden MTK\16_3D_PDF\22.1\bin\cad_run.cmd" CATIA529_3DPDF -i "C:\Theorem\01_COMMAND_LINE\Zeugs_fuer_kay.CATPart" -o "C:\Theorem\01_COMMAND_LINE\zeugs_fuer_kay.pdf" publish off

    Diese Zeile muss Ich nun irgendwie aus VBA heraus starten können. Bevor jetzt Infos bezüglich BATCH-Datei kommen muss ich sagen das sich die Input(-i) sowie Outpu(-o) Element immer ändern werden.

    Hier der Code aus meinem VBA

    VB.NET-Quellcode

    1. Dim sCommandLine, sTheoremVerter, sTheoremInputFile, sTheoremOutputFile, sTheoremPublish, sTheoremCatiaVersion As String
    2. Set WSHShell = CreateObject("WScript.Shell")
    3. sCommandLine = "CMD /k"
    4. sTheoremVerter = "L:\cat\v5\design\01_MTK\01_Methoden MTK\16_3D_PDF\22.1\bin\cad_run.cmd"
    5. sTheoremCatiaVersion = "CATIA529_3DPDF -i"
    6. sTheoremInputFile = "C:\Theorem\01_COMMAND_LINE\Zeugs_fuer_kay.CATPart"
    7. sTheoremOutputFile = "C:\Theorem\01_COMMAND_LINE\zeugs_fuer_kay.pdf"
    8. sTheoremPublish = "publish off"
    9. strcmd = """" & sTheoremVerter & """ " & sTheoremCatiaVersion & " """ & sTheoremInputFile & """ " & "-o """ & sTheoremOutputFile & """ " & sTheoremPublish
    10. Set WshShellExec = WSHShell.Exec(strcmd)


    Ich hoffe hier kann jemand weiterhelfen. Kann ja nicht so schwer sein eine Befehlsfolge in die Eingabeaufforderung zu bringen.
    Gruß Kay