2009-04-15 3 views
0

Ich habe eine Batch-Datei, die meine IDE ruft, so möge ich nur wissen, ob wir den Inhalt in meinen IDE vorhanden extrahieren können (gesamter Inhalt) auf einige Textdateien.Batch-Datei Umleitung

ist meine Batch-Datei unter

geschrieben
D:\WindRiver\wrenv.exe -p vxworks653-2.2.3 run 
PAUSE 

Gibt es noch mehr Code in meinem bestehenden Batch-Datei hinzugefügt werden benötigt ??

Antwort

0

Ich fragte a similar question die ihnen nützlich sein können. Diese Art von Ansatz funktioniert nur, wenn Ihre IDE Informationen an stdout/stderr etc. ausgibt.

Ich hatte einige (begrenzte) Erfolge beim Einbinden in Prozesse, die bereits laufen, um Daten abzufangen, die sie sind Ausgabe.

Spezifisch, was versuchst du zu erfassen? Die Ausgabe von einem seiner Fenster? Fehlermeldungen, wenn es nicht startet?

[Bearbeiten] Ich weiß immer noch nicht genau, was Sie zu erfassen versuchen, aber es klingt wie Sie könnten ein Python-Skript aus Ihrer Batch-Datei starten. The script launches your IDE und erfasst stdout und stderr, die Ihnen beide normale Ausgabe und irgendwelche Fehler gibt.

+0

Hi jon, Was ich wirklich will, ist der gesamte Inhalt meiner IDE in som Textdatei zu bekommen. Ich bin nicht in der Lage, irgendwelche Protokolldateien zu generieren, die das Ergebnis meiner IDE-Ausführung zeigt, außer im IDE-Fenster selbst.Ich möchte, dass der gesamte Inhalt zu einigen XML-Dateien oder Textdateien eingeloggt ist, so dass ich es Firth – Maddy

1

Ich bin nicht sicher, was denken Sie von "extrahieren Sie den Inhalt in meiner IDE", aber im Allgemeinen wird diese Art von Problem mit Automatisierungstools gelöst. Solche Werkzeuge können alles in Windows-Umgebung greifen von Fensternamen, Tastenbeschriftungen, Textinhalt ... alles, was Sie von der 3th-Party-Anwendung bekommen müssen (auch Bilder von GUI-Elementen)

Ich schlage vor, Sie sehen AutoHotKey, ~ 200 KB Skriptsprache für Windows-Automatisierung.

Sie können dies in der Regel Batch nicht tun.

Einen Inhalt eines Fensters in AutoHotKey kann so einfach sein wie:

WinGetText, text, "name of the window" 
FileAppend, %text%, c:\out.txt 

Es kann ein bisschen komplizierter dann, dass zu bekommen, aber nichts, was Sie wollen, kann nicht mehr als 10 Zeilen beinhalten AHK Skripting.

Dies ist der beste Ansatz becuase es nicht auf Merkmale des gegebenen Programms abhängt, tso, wenn Sie lernen, AHK, Sie beliebige Informationen aus dem System in einheitlicher Weise erhalten kann.

Beachten Sie, dass einige Anwendungen nicht Standard-Windows-Komponenten verwenden und dass sie nicht automatisierbar sein kann (dies jedoch selten ist).

Auf dem Gemeinschaftsforum gibt es viele nützliche Funktionen und Bibliotheken für im Grunde alles, was Sie benötigen, um Informationen zu erhalten - Umleitung von stdin/out zu Ihrer Datei, COM Accesibility Modul (System Weg, Dinge in Windows zu automatisieren), sogar einige OCR-Wrapper zum Scannen von Informationen auf Bildern.

+0

verwenden kann Hallo, was ich meine, ist die jede in meiner IDE vorhandenen Informationen sollte in einer Textdatei eingeloggt sein – Maddy

+0

hey wird das machen Dinge in meiner Batch-Datei Verarbeitung verwickelt ?? hwich community forum du hättest erwähnt ?? – Maddy

+0

Autohotkey-Forum. Nein, es wird nicht durcheinander gebracht. Sie haben keine Batch-Dateien: P Nur 1 kurze AHK-Skript. – majkinetor

0

Entschuldigung für die späte Antwort.Dies ist die eigentliche IDE (D: \ WindRiver \ wrenv.exe -p vxworks653-2.2.3) Wenn ich diese in der Eingabeaufforderung platzieren, wird meine IDE aufgerufen.Plz bekommen für jede weitere clarifiaction zu mir zurück

Dank stefen

+0

All dieser Befehl sagt mir, ist die ausführbare Datei, die Sie verwenden. Ich erkenne diesen ausführbaren Namen nicht, daher bin ich mir immer noch nicht sicher, was Sie starten. Ist es Wind River Workbench: http://is.gd/sIda ... oder etwas anderes? –

+0

Es ist eigentlich "VXWorks 653 2.2.3 Entwicklung Shell". – Maddy

0

>>> Hallo, ich mit AutoHotKey versucht jst ....

Nein, das ist nicht richtig.

Der richtige Code kann nur gemacht werden, wenn ich WindRiver installiert habe, den ich nicht habe. Ok, lass mich das kurz erklären.

Zuerst werde ich davon ausgehen, dass der Titel der IDE mit "WindRiver" Wort beginnt. WindRiver muss den Text in einer Standardfenstersteuerung in seiner Steuerungshierarchie halten. Der Typ des betreffenden Steuerelements steuert den Weg, wie Sie den Text daraus entnehmen können. Wenn es Listview oder List-Box ist zum Beispiel, müssen Sie verwenden

ControlGet, outputVar, List,, SysListView321, WindRiver 

Der obige Code bedeutet, „hol mir Text der ersten SysListView32 Kontrolle (also 1 am Ende) von Anwendung, den Titel mit‚Windriver‘beginnt, und steckt es in ouputVar Variable“

Wenn im Bearbeitungsfeld hält, können Sie einfach tun:

ControlGetText, OutputVar, Edit1, WindRiver 

Das bedeutet,‚hol mir Inhalt ersten Edit Control innerhalb Anwendung mit dem Titel Windriver‘

Um den Typ und die Nummer des fraglichen Steuerelements zu erhalten, öffnen Sie einfach Window Spy (Rechtsklick auf das AHK Tray-Icon) und bewegen Sie den Mauszeiger über die Steuerung mit der Maus, um Details zu sehen.

Die gesamte Skripte werden wie folgt aussehen:

Run, d:\WIndriver .... 
WinWaitActive, WindRiver 
ControlGetText, OutputVar, Edit1, WindRiver 
MsgBox %OtputVar% 

Wenn Titel des Fensters verändert Fenster zu identifizieren, ständig müssen Sie Fensterklasse instad Titel. Zum Beispiel Sie Notizblock als

ControlGetText, o, Edit1, Untitled 

oder

COntrolGetText, o, Edit1, ahk_class Notepad 

erste Methode verwendet Fenstertitel, verwendet zweites Fenster API-Klasse der Anwendung ausrichten können, die besser als Titel ändern kann, ist.

Alles in allem, um mit AHK ein wenig flüssig zu werden, gibt es Startup-Beispiele. Ich kann Ihnen versichern, dass Sie nach einigen Tagen des Übens feststellen werden, dass sich jede Anwendung Ihren Bedürfnissen anpasst.

Um zu sehen, wie mächtig AHK ist und welche erstaunlichen Dinge darin gemacht werden können, sehen Sie sich das Modul Dock an.

Es gibt keine Möglichkeit, dies im Batch zu tun und die Standardumleitung zu verwenden, also sollten Sie sich besser an AHK oder eine ähnliche Sprache (AutoIt, Phantom, WinRunner ....) gewöhnen. BTW, diese Art von Question wird in der Regel innerhalb weniger Stunden auf AHK Community Ask for Help Forum beantwortet.

+0

Vielen Dank Majkinetor für so viel Aufwand für die Antwort, die Sie zur Verfügung gestellt haben. Es funktioniert jetzt perfekt. Vielen Dank noch einmal. – Maddy

Verwandte Themen