cmd-Kontrollfeld mit node

- javascript
- node.js
Hallo,
ich arbeite mit Node.js v22.9. und Windows [Version 10.0.19045.6093] Mit cmd.exe gestartet,node aufgerufen und dann arbeit an der KommandoZeile.
Nacheinander werden die (Test)Werte in das (schwarze) Kontrollfeld geschrieben und der EingabePrompt rückt eine Zeile tiefer.
Das ist gut,aber plötzlich springt der EingabePrompt wieder nach oben in bereits ausgegebenen Zeilen. Ausgaben werden dann ebenfalls in bereits belegte Flächen geschrieben und die bestehenden Werten überschrieben. So entsteht ein furchtbares Durcheinander.
Kann mir jemand helfen ?
Hallo effel,
lässt Du ein nacktes Node laufen? In dem Fall wäre dein "schwarzes Kontrollfeld" das CMD-Fenster, in dem Node läuft und Dich interaktiv JavaScript ausführen lässt.
NORMALERWEISE wird auf einer Zeile ein Befehl eingegeben, und wenn man ENTER drückt, wird er ausgeführt. Ausnahme ist {, damit beginnt man einen Befehlsblock und der wird als Ganzes ausgeführt. Aber das alles zerreißt die Konsole nicht.
Die Frage wäre also, was Du da mittels Node ausführst? Meine Annahme wäre, dass irgendwelcher Code, den Du geschrieben oder eingebunden hast, für das visuelle Durcheinander verantwortlich ist.
Ah. Achso. Welches Windows ist das? Ist das die klassiche Konsole, in der du cmd laufen lässt, oder diese "verbesserte" Krankkeit, die Windows 11 mitliefert? In diesem Fall könnte es zu Konflikten kommen, weil Node damit nicht zurecht kommt. Mein File Commander kommt damit definitiv nicht klar. Aber ich habe kein Gerät verfügbar, auf dem ich die Kombi Win11 und Node ausprobieren könnte, deswegen ist das alles nur Hypothese.
Rolf
Rolf,
erstmal danke,
-ganz normales Windows 10
-im Normal funktioniert es auch so: Befehl und nächste Zeile(n) Ergebnis
-erfahrung: es tritt auf, wenn sehr viel ausgegeben wurde
-Frage:kann Node,bzw Node-code das Ausgabefenster beeinflussen?
-gibt es bestimmte Zeichen, die die Ausgabe beeinflussen (wie Drucker)
-wenn ja, wo finde ich Infos
Gruß Effel
Hallo effel,
kann Node,bzw Node-code das Ausgabefenster beeinflussen? gibt es bestimmte Zeichen, die die Ausgabe beeinflussen (wie Drucker)
Ja, Node aktiviert in der Konsole die ANSI-Steuersequenzen.
Rolf
Rolf,
das kann ich gebrauchen.
habe heraus gefunden, daß die manchmal übergroße Menge an Daten, die bei Tests ausgegeben werden, die Ursache sein können.
Also das hat mir geholfen
Effel
Hallo effel,
die ANSI Sequenzen hängen nicht an der Menge, sondern an bestimmten Bytefolgen.
Es kann natürlich auch sein, dass Node, wenn Du einen 1MB langen String mit console.log() ausgibst oder der als Ergebnis eines Ausdrucks herauskommt, einen Bug hat.
Rolf
Ok, das kann es sein, ich werde es untersuchen
Effel
Welches Windows ist das? Ist das die klassiche Konsole, in der du cmd laufen lässt, oder diese "verbesserte" Krankkeit, die Windows 11 mitliefert? In diesem Fall könnte es zu Konflikten kommen, weil Node damit nicht zurecht kommt.
Rolf
Hallo Rolf, nur eine kleine Anmerkung dazu: In dieser "verbesserten" Krankheit (Powershell) mache ich auch oft als erstes Kommando ein "cmd" - und schon ist die altbekannte Version da
Liebe Grüße, Hans
Hallo Hans,
das sind zwei Paar Schuhe. Powershell/CMD ist der Befehlsinterpreter, die Anzeigeschicht darunter ist das Terminalfenster. Und das hat Microsoft massiv umgebaut. Aus Sicht mancher Programme mag es besser geworden sein, aus Sicht von Fullscreen-Konsoleanwendungen wie File Commander ist es die totale Enshittification.
Aber auch im alten Terminalfenster gab es Unterschiede: ANSI ON und ANSI OFF. Während man unter DOS noch einfach ANSI ON sagen konnte, geht das unter Windoof nur noch über ein API Kommando einer Konsolenapplikation. Node.js schaltet ANSI ein. In einem Batch-Script funktionieren die ANSI-Sequenzen nicht, unter NODE hingegen schon. Wie es unter PowerShell aussieht, weiß ich nicht, wenn ich .net will, rufe ich Visual Studio auf und schreibe ein C# Programm…
Rolf