ESC Codes in Win7 Batch-File verwenden

Hallo,

ich arbeite gerade an einem Batch-File (Win7 32bit) mit dem ich einen seriellen Drucker direkt ansteuere.
Reine Textausgaben sind problemlos möglich.
Beispiel: echo Test >com1

Die Steuer-Sequenz zum zentrierten Drucken wird mit „ESC a 1“ angegeben.

echo ESC a 1 >com1
Erzeugt  die  Druckausgabe „ESC a 1“.
Das ESC muss also ein Steuercode sein.
Google spuckt mir diverse Entsprechungen aus „’[“, „^[“, „^“, „’“, „[#27]“, „^!“
Keine davon funktioniert.

Einzig die Varianten „^“, und „^!“ werden nicht als Text ausgegeben.

Kann mir jemand weiterhelfen?

MfG  Frank

Hallo ,
mit Promt wäre es einfacher , guck mal dort
http://obrienpc.net/dos/v-ansi-escseq.html
bei ECHO
da wird gezeigt wie man die escape sequencen eingeben kann .

Hallo Frank,

ich arbeite gerade an einem Batch-File (Win7 32bit) mit dem
ich einen seriellen Drucker direkt ansteuere.
Reine Textausgaben sind problemlos möglich.
Beispiel: echo Test >com1

wieso steht da > ? wie, wo gibst du deinen Text ein? Klappt > nicht?
Und wenn schon dann schreib das (zusammengeschrieben) so
& # gt ;
(wenn das nicht klappt, bin aus der Übung), nimm das, das klappt hier:
& # 62 ;

Die Steuer-Sequenz zum zentrierten Drucken wird mit „ESC a 1“
angegeben.

echo ESC a 1 >com1
Erzeugt  die  Druckausgabe „ESC a 1“.
Das ESC muss also ein Steuercode sein.

? ja.

Google spuckt mir diverse Entsprechungen aus „’[“, „^[“, „^“,
„’“, „[#27]“, „^!“
Keine davon funktioniert.

Ich weiß nicht wie du da was probiert hast.
Echo [27] usw. klappt nicht.

Tech hat dir ja einen Link gezeigt, versuche da erstmal (Echo) weglassend Prompt im Zusammenhang mit Steuerzeichen wie 27 zu erlernen.
Prompt wirkt unscheinbar, es gab prompts bzw. genauer esc-Sequenzen , wer die startet dem wird seine Festplatte formatiert.

Wie auch immer, da gilt eine ganz eigene Syntax, da mal Esc oder 27 reinzuschreiben bringt nix, das muß „richtig“ eingefügt werden.

Einzig die Varianten „^“, und „^!“ werden nicht als Text
ausgegeben.

Werden wohl Steuerzeichen für Echo sein *sehr glaub*

Gruß
Reinhard

Hallo Frank,

ESC ist der Name eine Steuerzeichens mit dem Wert 27D, 1BH 00011011B.

https://de.wikipedia.org/wiki/ASCII#Zusammensetzung

Ich habe das früher, zu DOS-Zeiten, so gemacht, dass ich mit einem Hex-Editor kleine Dateien mit den Steuersequenzen geschrieben habe und diese dann an den Drucker kopiert habe. Man konnte diese Dateien auch mit Debug.com erstellen, welches bei jedem MS-DOS dabei bar.

Zentrieren.dat hätte dann folgenden Inhalt

1B 61 31

Dann sieht dein Batch folgendermassen aus:

copy Zentrieren.dat com1:
Echo MeinText >com1

MfG Peter(TOO)

Hallo

und schonmal vielen Dank für die Antworten.
Ich kann in dem Komodo Edit das ESC Zeichen (in der ASCII Codierung) nicht erzeugen. Ich konnte es jedoch in einem anderen Programm erzeugen und in den Komodo edit einfügen. Komodo stellt das Zeichen jetzt als invertierten Button „ESC“ dar. Das „CR“ und „LF“ am Ende jeder Zeile wird jenauso abgebildet.

Mit dem PROPT Befehl stehe ich auf Kriegsfuß. Er scheint überhaupt nichts zu machen. Ich erreiche keinerlei Ausgabe. Weder auf dem Drucker noch im DOS-Fenster.

echo Test test >com1
Erzeugt die Ausgabe Test test auf dem Drucker.

echo BTest com1
Erzeugt exakt die gleiche Ausgabe: Test test
"BTest com1
Erzeugt die Ausgabe: BTest btest
Die eckige Klammer stört also offenbar.

Durch Zufall habe ich herausgefunden:
echo GSTest com1
Alles nach dem GSTest fett >com1 = Test fett
echo @Test normal >com1 =Test normal
echo Test com1
Ausgabe:
Test
neue Zeile

Eigentlich möchte ich einen Code übergeben der laut Doku so aussieht:
ESC GS V m
Wobei „m“ für eine Zahl steht.

Das Codebeispiel sieht so aus:
Chr(&H1D) + „V“ + Chr(&H0)
bzw.
CHR$(&H1D);„V“;CHR$(66);CHR$(0);

Am liebsten wär mir ja eine Beispiel-Batch. Hat denn sowas noch keiner gemacht?

MfG Frank

Hallo,

fürs Archiv, hier die Lösung:
„ESC“ steht für das ESC-Zeichen (27).
„GS“ steht für das GS-Zeichen (29).
„NUL“ steht für das NUL-Zeichen (0)

Schnittstelle einrichten

MODE com1:9600,N,8,1>NUL

Initialisieren (alles auf Standard) (ESC @)

echo ESC@ >com1

Unterstreichen (ESC - n)

echo ESC-1Test unterstrichenESC-0 >com1

emphesys (ESC E n)

echo ESCE1Test emphESCE0 >com1

zentriert (ESC a n)

echo ESCa1TestESCa0 >com1

Messer (GS V m)

echo GSV0 >com1

Schublade 1 (ESC p n)

echo ESCp0 >com1

Schublade 2 (ESC p n)

echo ESCp1 >com1

Auf Kriegsfuß stehe ich noch mit dem Barcode
Ich schaffe es nicht, das Zeichen NUL (0) zu erzeugen
m = 3 steht für EAN8

Barcode (GS k m d1…dk NUL)

echo GSk312345678NUL >com1

MfG Frank

Hi Frank,

in Windows 7 ist das erstaunlich schwierig. In FreeDOS könntest du es so
machen:

c:\>debug
acs:100
db 1b 61 31

rcx
3
n escape.txt
w
q

c:\>copy escape.txt com1

(beziehungsweise 01 statt 31 falls du ASCII Zeichen 1 statt der Ziffer 1
meinst)

Sinnigerweise gibt es aber in neueren Windows Versionen kein DEBUG mehr und
teilweise kannst du auch keine DOS Programme mehr laufen lassen, sonst
könntest du einen vielseitigen open source DEBUG Klon hier runterladen:

http://www.ibiblio.org/pub/micro/pc-stuff/freedos/fi…

Zum Glück führen aber immer mehrere Wege zum Ziel. Zum Beispiel kannst du
auch XXD verwenden, ein „Hexdump und zurück“ Tool was scheinbar zum VIM
Editor gehört. Das sieht dann so aus:

echo 00: 1b 61 31 | xxd -r > com1

Eine Windows Version von VIM, hoffentlich mit XXD gibts hier:

http://www.vim.org/download.php#pc

Bessere Text-Editoren können auch Steuerzeichen tippen oder haben gleich
einen Hex-Editor, probier zum Beispiel mal:

http://setedit.sourceforge.net/#download

http://www.heise.de/download/setedit-1119974.html

Oder gleich einen ausgewachsenen Hex-Editor:

http://www.heise.de/download/windows/systemsoftware/…

In Linux (oder mit der DOS / Windows Version von BASH, irgendwo auf
www.delorie.com) könntest du das machen:

echo -en ‚\Ea1‘ > /dev/ttyS0

oder in Windows, von cmd aus, bash.exe starten, dann:

echo -en ‚\Ea1‘ > escape.txt
exit
copy escape.txt > com1

(ich weiss nicht, wie in BASH in Windows die serielle Schnittstelle heisst,
vielleicht geht auch direkt „echo -en ‚\Ea1‘ > com1“ oder so ohne BASH erst
wieder zu verlassen…)

Wie du merkst, gibt es viele Methoden, auch wenn alle leider etwas
umständlich sind.

Das ESC Zeichen (ASCII 27, hex 1b, Unicode U+001b, Control [ … es gibt
viele Schreibweisen) wird in DOS und ähnlichen Umgebungen als kleiner Pfeil
nach links dargestellt. Wenn du also beim Betrachten deiner escape.txt sowas
siehst oder vielleicht ein [ in einer anderen Farbe oder ESC oder ^[ in
einer anderen Farbe oder so, könntest du auf dem richtigen Weg sein :smile:

Grüsse, Eric