Kommandozeilen-Programm ausführen und die Ausgabe dann in .txt - Datei schreiben

  • Hallo,

    ich habe folgendes Problem. Ich habe ein Programm, welches auf Basis der Cmd-Zeile arbeitet. Prinzipiell würde in der Kommandozeile der Dateiname des Programms und danach die Parameter, in meinem Fall "Anlage (Node)" und Messpunkt (TAG), eingegeben. Nun ist meine Aufgabe ein Programm zu erstellen, welches mehrere Werte aus Node nach einander einliest und die Ausgaben in ein Text-File schreibt. Ich habe es zunächst mit Batch versucht, scheitere aber hier daran, dass das Text-File leer bleibt. Nun ist meine Hoffnung Auto-It... Ich habe vor 3 Jahren mich damit mal beschäftigt gehabt und kann mich somit an die Syntax erinnern, jedoch nicht gut genug, um es allein zu schaffen. Also... Wie erreiche ich es, dass das Programm in der Cmd aufgerufen wird und der Wert dann in ein txt File geschrieben wird?

    Ich hoffe ihr könnt (und wollt) mir dabei helfen... Danke im Voraus,

    MrCBeat

  • _RunDos("dir > file.txt")

    peethebee :

    Ich meine, das es evtl. so lauten muß, wenn die file.txtschon vorhanden ist: _RunDos("dir >> file.txt")

    Erklärung:
    Ich leite meine Erklärung mal vom "Batching" ab

    Schreibe in eine noch nicht bestehende Datei: _RunDos("dir > file.txt")

    Schreibe in eine schon bestehende Datei: _RunDos("dir >> file.txt")

    Einfach mal testen, aber irren ist auch menschlich und nicht "weiblich". ;)

    LG, Crazy-A(lina).

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • So... erstmal danke für die zahlreichen Antworten, ich werde mich dann heute Abend damit beschäftigen können, da hier auf den Rechner Admin-Rechte von Nöten sind :(

    Oscar : in der Kommandozeile (Pfad vorher festgelegt): "demo1.exe Node Tag"... So sieht das ganze aus... Bei Batch habe ich das Problem, dass er trotz des >> (an bestehende Datei ggf anhängen) den Wert in der Cmd anzeigt, was er eigentlich nicht tun dürfte... Von daher versuche ich jetzt mit Auto-It auf die Ausgabe direkt zuzugreifen... Mal sehen ob das geht...

  • Hmm... ich habe mir den StdoutRead() mal angeschaut. Kurz gesagt, ich schau da leicht wie das Schwein ins Uhrwerk... Daher habe ich erstmal den Befehl _RunDOS verwandt. Wieder das gleiche wie schon bei dem Batch-File... Bei der Hello-World Anwendung wird anstandslos Hello World in das gewünschte File geschrieben, bei dem eigentlichen Messpunkt wiedermal nicht... :S

    Gibt es eine Möglichkeit zu sagen. dass AutoIt an einer bestimmten Stelle der Cmd die Zeichen ausliest und in eine Datei umleitet?

    Danke wiedermal... (/me ist leicht am verzweifeln)

  • Moin,

    oftmals bieten Konsolenprogramme einen Parameter um die Ausgabe in eine Datei zu schreiben.
    Bei Programmen die aus der Linux-Welt kommen ist es meist '-o' ...

    Rufe doch einfach mal die Hilfe auf (-h, /h, help ...) und prüfe, ob so ein Parameter existiert ...


    Gruß
    Greenhorn


  • Alina: ">" heißt auch, das das bestehende File überschrieben werden soll :D
    @Thread: Das das nicht gelesen wird kann aus meiner Sicht an 3 Sachen liegen: 1. Das geänderte Verhalten von StdoutRead (wartet nicht mehr bis die Ausgabe abgeschlossen ist), 2. Irgendwo hab ich gelesen das viele Programme ihre Ausgabe auch in den StdErr-Stream schreiben, versuche also auch ein mal StderrRead und 3. Du hast schlicht und einfach die Funktion falsch benutzt ;):D . So weit ich weiß hat _RunDOS nicht die Möglichkeit, ein Handle zum Stream aufzumachen, benutze stattdessen lieber Run(@ComSpec...) mit entsprechendem Parameter.

    Und Greenhorn: Bei Windows ist das nicht so, zumindest bieted keines der mitgelieferten CMD-Programme bieted solch eine Funktion.(allerdings kenn ich auch nicht alle ;)

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)