2014-08-27 10 views
5

Ich konnte meine Casperjs nicht auf meiner CMD.exe (Windows 7, x64) farbig geltend machen. Ich folgte ansicon.Farbausgabe für cmd aktivieren

Wenn ich richtig verstanden, aktiviert automatisch gefärbt sind, wenn ansicon casperjs installiert ist

Windows-Benutzer kolorierte Ausgabe erhalten, wenn ansicon installiert ist.

Irgendwelche Ideen?

UPDATE

var casper = require('casper').create(), 
    utils = require('utils'), 
    http = require('http'), 
    fs = require('fs'), 
    colorizer = require('colorizer').create('Colorizer'); 

var xpath = require('casper').selectXPath; 

casper.start('http://google.com/').then(function(response) { 
    casper.echo('This is supposed to be green', 'INFO'); 
}); 

casper.run(); 

CMD:

C:\Users\itsme\Desktop>casperjs test test.js 
Test file: test.js 
This is supposed to be green 

C:\Users\itsme\Desktop>casperjs test test.js 
+1

Haben Sie ansicon heruntergeladen und installiert? Welche Schritte haben Sie unternommen, um es zu verwenden und was passiert, wenn Sie es tun? –

+0

Ich habe [ansicon] heruntergeladen (https://github.com/downloads/adoxa/ansicon/ansi160.zip), lege es unter 'C:', fügte x64 zu meiner Umgebungsvariable (Pfad) hinzu, führe 'ansicon. exe -i' (keine Ausgabe), cmd geschlossen und wieder geöffnet und zuletzt habe ich meinen Casper-Test ausgeführt, wo ich 'casper.echo ('grüne Nachricht', 'INFO');'. Ich habe keine Farben – smarber

+0

Haben Sie etwas wie '← [36m [info] ← [39m [Phantom] grüne Nachricht' oder nur '[info] [phantom] grüne Nachricht gesehen?Setzen Sie Caspers 'ausführliche' Option auf wahr? –

Antwort

2

Die Antwort ist hier: ANSI-Coloring Console Output with .NET

Die CasperJS Binärpaket kommt mit einem vorab zusammengestellt casperjs.exe, die die x86-Plattform abzielt. Leider hat dies den Effekt, den Sie auf x64-Versionen von ansicon erwähnen. Lösungen

:

  1. Verwenden Sie die x86-Version von ansicon.exe
  2. Recompile casperjs.exe für die x64-Plattform, die schnell und schmerzlos ist:

    C:\>cd casperjs\src 
    C:\casperjs\src>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /platform:x64 casperjs.cs 
    

Kopieren Sie die resultierende Exe in das Verzeichnis bin und fertig.

2

Ich denke, Ihr Problem ist, dass casperjs wird geprüft, ob die Umgebungsvariable ANSICON auf Windows gesetzt ist, und wenn es nicht gesetzt ist Es wird nicht versucht, die Ausgabe zu kolorieren. Leider, wenn Sie Ansicon so installieren, wie Sie es getan haben, wird diese Variable nicht wirklich in der Umgebung gesetzt. Stattdessen verwendet es einen groben Hack, um es in der Umgebung des anfänglichen cmd.exe Prozesses eines Fensters festzulegen, aber nur, wenn der cmd Prozess versucht, seinen Wert abzurufen. Da normalerweise nichts die Umgebungsvariable ANSICON verwendet, bedeutet dies, dass sie normalerweise nicht für andere Prozesse (z. B. casperjs) sichtbar ist, die in diesem Fenster ausgeführt werden.

Wenn dies das Problem ist dann alles, was Sie tun müssen, um die ANSICON Variable gesetzt ist, bevor casperjs ausgeführt wird:

set ANSICON=%ANSICON% 

Sie können auch unter Verwendung von setx ANSICON=foo dies zu einem festen Bestandteil der Umwelt leisten.

+0

Ich habe versucht, diese Lösung aber nicht funktioniert entweder – smarber

+0

Wenn Sie 'setx' verwendet, müssen Sie das Befehlsfenster schließen und ein neues öffnen, damit es wirksam wird. –

+0

Versuchen Sie, Ihrem Beispiel den zweiten 'echo' Aufruf hinzuzufügen, wo die Zeichenkette' "\ 033 [32mDies soll grün \ 033 [m" 'sein. Wenn das funktioniert, funktioniert Ansicon korrekt und das Problem ist mit casper.js. Wenn es nicht funktioniert, dann wahrscheinlich, weil Ansicon aus irgendeinem Grund nicht funktioniert. –