echo -e Entsprechung in Windows?

8

Gibt es ein Linux "echo -e" -Äquivalent in Windows, so dass ich "echo -e \ xnnn" verwenden kann, um das Zeichen auszugeben, dessen ASCII-Code der hexadezimale Wert nnn ist?

    
ccy 21.12.2010, 01:24
quelle

4 Antworten

11

Es gibt keine Entsprechung, aber Sie können Ihre eigene Funktion schreiben.

Ich würde das Problem in zwei Teile aufteilen.

  • Konvertiere die hexadezimale Zahl in dezimal.
  • Konvertiere die Dezimalzahl in ASCII.

Die Konvertierung von Hex in Dezimal ist einfach mit

%Vor%

Die Umwandlung einer Zahl in ein ASCII ist komplizierter, es hängt vom erforderlichen ASCII-Bereich ab Wenn Sie nur den Bereich von 32 (Leerzeichen) bis 126 '~' benötigen, können Sie die =ExitCodeAscii Variable

verwenden %Vor%

Wenn Sie auch einige Sonderzeichen wie CR , LF , ESC , DEL benötigen, ist es möglich, sie mit reinem Batch zu erstellen.

Wenn Sie mehr benötigen, als Sie vbscript verwenden könnten.

forfiles-Methode

Ein allgemeinerer Weg besteht darin, den Befehl forfiles ( Dostips: Erzeuge fast jeden Charakter .. . )

echo-e.bat

%Vor%

Sie können es über echo-e.bat "Hello\x01\x02\x03" aufrufen und du bekommst Hello☺☻♥ .

    
jeb 21.12.2010, 07:38
quelle
5

Es gibt eine von Dave Benham geschriebene Batch-Dateimanipulationsbibliothek namens CharLib .   Diese Bibliothek ist unter anderem in der Lage, hex in ascii für alle Zeichen im Bereich 1..255 umzuwandeln (es kann nicht zu 0 - & gt; NUL).

Weitere Informationen finden Sie im Thread Ist es möglich, ein Zeichen in seinen ASCII-Wert zu konvertieren? auf DosTips.com

Wenn Sie nur ein einzelnes problematisches Zeichen (z. B. einen Steuercode) in Ihrem Stapelscript verwenden müssen, ist es eine unschätzbare Ressource für das Ausschneiden und Einfügen.

z.B. um ein CR-Zeichen (ohne LF) in einem Stapel-Skript zu drucken ...

%Vor%

wird wie erwartet auf der Konsole "xxxxxx7890" drucken.

    
timfoden 24.10.2012 10:44
quelle
2

Hier ist eine einfache hybride Stapel- / JScript-Datei, die verwendet werden kann, um die Ergebnisse eines gültigen JScript-Ausdrucks zu reproduzieren, einschließlich eines mit \ xnn. Es unterstützt alle Bytecodes von \ x00 bis \ xFF.

Der Stapel enthält ein einzelnes Argument, das in doppelte Anführungszeichen gesetzt wird. Das Argument sollte ein gültiger JScript-Ausdruck sein. Die Anführungszeichen sind nicht Teil des Ausdrucks. JScript-Strings innerhalb des Ausdrucks sollten in einfache Anführungszeichen eingeschlossen werden.

Standardmäßig wird am Ende des Ergebnisses kein Zeilenumbruch gedruckt. Mit der Option / N wird eine neue Zeile an das Ende des Ergebnisses angehängt.

Wenn es in einer Batch-Datei verwendet wird, sollte das Skript natürlich mit CALL aufgerufen werden.

jEval.bat

%Vor%

Hier ist ein Beispielaufruf, der \ xnn verwendet, um eine neue Zeile in die Ausgabe einzufügen, sowie einige Gleitkommaarithmetik.

%Vor%     
dbenham 08.05.2012 04:17
quelle
1

Hinzufügen zu dem, was @jeb sagte, dass Sie

neu erstellen können %Vor%

mit

%Vor%

was wird:

%Vor%     
mk7 16.05.2017 03:40
quelle

Tags und Links