schottenrock
Goto Top

BATCH: Sonderzeichen in Datei schreiben mit echo

Hallo,

in einer recht umfangreichen Prozedur muss ich nun Postscript Programmbefehle in eine Datie schreiben (unwichtig, aber wen's interessiert: für das Merging von PDF-Dateien mache ich eine pdfmark-Datei).

Hier mal ein Beispiel:

echo [ /Title (Unterlagen, Documents) >%pth%tmp\pdfmarks
echo   /Author (Hans Wurst und charlie Cheese) >>%pth%tmp\pdfmarks
echo   /Subject (Food for special people) >>%pth%tmp\pdfmarks
echo   /CreationDate (D:%timestamp%-01) >>%pth%tmp\pdfmarks
echo   /DOCINFO pdfmark >>%pth%tmp\pdfmarks
echo.  >>%pth%tmp\pdfmarks

:: UM DIE NÄCHSTE ZEILE GEHT ES JETZT EIGENTLICH
echo [{Catalog} <</PageLayout /OneColumn>> /PUT pdfmark >>%pth%tmp\pdfmarks
echo [{Catalog} /CLOSE pdfmark >>%pth%tmp\pdfmarks
echo.  >>%pth%tmp\pdfmarks

Die letzten 3 Zeilen will ich gerade testen, ob das klappt, aber genau diese schreibt er mir nicht mit der Fehlermeldung:
"<<" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Batch bricht ab. Wie genau muss ich nun maskieren, dass alles in die Datei pdfmark (ja, OHNE Dateiendung) geschrieben wird?

Bereits im Voraus besten Dank, für alle, die sich mit dedr Thematik beschäftigen werden.

Gruß

Schottenrock

Content-ID: 388265

Url: https://administrator.de/contentid/388265

Ausgedruckt am: 08.11.2024 um 07:11 Uhr

SeaStorm
Lösung SeaStorm 02.10.2018 aktualisiert um 12:36:05 Uhr
Goto Top
Hi

das sind Steuerzeichen in Batch und müssen somit mit einem Delimiter notiert werden.
https://ss64.com/nt/syntax-esc.html


also in deinem Fall z.B
echo [{Catalog} ^<^</PageLayout....
Schottenrock
Schottenrock 02.10.2018 um 12:44:05 Uhr
Goto Top
Oh Mann, Dankeschön. Ich wusst schon, dass ich notieren muss, aber mir fiel auf die Schnelle das passende Zeichen Delimeter (wir im Süden nennen das "Dächle") nicht mehr ein. Bin nur "Gelegenheits-Batcher" face-smile

Vielen Dank!
SeaStorm
SeaStorm 02.10.2018 um 13:31:02 Uhr
Goto Top
Das Dächle heist nirgendwo Delimiter ;) Das Ding heist Circumflex.
Ein Delimiter ist ein Zeichen, das dem Parser, also in dem Fall dem Verarbeiter der Batchdatei, sagt, das er das folgende Zeichen nicht als Steuerzeichen, sondern als Text behandeln soll. Das muss nicht zwingend das Dächle sein. Ist halt in batch das Dächle. In anderen Sprachen oft der Backslash "\" oder sonst was.
erikro
erikro 02.10.2018 um 13:40:36 Uhr
Goto Top
Moin,

und das heißt dann nicht Delimiter, denn das ist das Trennzeichen für Daten eines Datensatzes. Was Ihr meint ist das Maskierungszeichen oder auch Escape Character. face-wink

Liebe Grüße

Erik