Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Allgemein


Alles zum Thema Windows Clients für den Desktop: Windows 95 / 98 / NT / 2000 / XP / Vista / Win 7 — Q & A zu den Windows Client Versionen sowie Windows Media Center / Windows Home Server


Antwort
     
Themen-Optionen
Alt 24.11.2005, 17:41   #1
Moderator
 
Offline
Registriert seit: 06-2001
Ort: Frankfurt a.M.
Beiträge: 6.839
Frage *.rtf Dateien via Batch erzeugen

Hi zusammen,

ich habe gerade ein kleines Batch Problem. Ich würde gerne eine Batch Datei schreiben (bzw. final über eine WebApplikation erzeugen) welche mir mehrere *.rtf Dokumente erstellt.

Wenn ich nun aber hingehe und den "code" eines rtf's in eine Batch copiere und diese Anweise mit:
Code:
copy "[rtf_code]" > rtf_date.rtf
dann wird jeder Zeilenumbruch im rtf auch in der Batch als solcher interpretiert. Kann ich das irgendwie escapen?

Danke

Signatur
:: www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt!
:: www.SECURITY-BLOG.EU - DER Security BLOG!

    Mit Zitat antworten
Alt 25.11.2005, 11:10   #2
Gast
 
Offline
Registriert seit: 12-2004
Ort: irgendwo im Filesystem
Beiträge: 2.657
Hi
mir ist nicht ganz klar was du da vorhast.
Du erstellst eine .RTF wie? die soll dann wohin / was machen?
Binäry Copy mit /b - aber warum nicht mit VBS etc scripten?
    Mit Zitat antworten
Alt 25.11.2005, 15:05   #3
Moderator
 
Offline
Registriert seit: 06-2001
Ort: Frankfurt a.M.
Beiträge: 6.839
Zitat von Das Urmel
Hi
mir ist nicht ganz klar was du da vorhast.
Du erstellst eine .RTF wie? die soll dann wohin / was machen?
Binäry Copy mit /b - aber warum nicht mit VBS etc scripten?
Hi,

ok dachte ich mir.

Also folgendes. Ich habe eine Webanwendung die u. U. ein Script (batch) erstellt, die nach dem Ausführen, einen bestimmten Verzeichnisbaum anlegt. In jeden dieser Ordner muss ich aktuell ein Word Dokument legen (von Hand) das eine Art Inhaltsverzeichnis darstellt. Da ich von Haus aus faul bin würde ich die Templates dieser Word Dateien gerne direkt in die Ordner legen lassen. Da ich jedoch nur eine Datei als Ausgabe aus der WebAppl haben kann / will bleibt mir nichts anderes übrig als den Inhalt dieser Templates (die für jedes Verzeichnis etwas anderst aussehen) direkt in die Batch zu schreiben.

Hoffe, man kanns jetzt verstehen. VBS bin ich kein so Held drin - habe mir zwar ein Buch dazu gekauft aber viel mehr auch noch nicht .

Gruß

Signatur
:: www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt!
:: www.SECURITY-BLOG.EU - DER Security BLOG!

    Mit Zitat antworten
Alt 25.11.2005, 19:04   #4
Gast
 
Offline
Registriert seit: 12-2004
Ort: irgendwo im Filesystem
Beiträge: 2.657
Ok, ich glaube ich habs kappiert
Ich denke mal drüber nach - nach Weihnachtsmarkt und Glühwein.
    Mit Zitat antworten
Alt 25.11.2005, 19:30   #5
Moderator
 
Offline
Registriert seit: 06-2001
Ort: Frankfurt a.M.
Beiträge: 6.839
Danke,

ich vermute mal, ich muss irgendwie die Zeilenumbrüche und sonstigen Steuerbefehle escapen kenne aber keine Funktion dafür

Gruß

Signatur
:: www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt!
:: www.SECURITY-BLOG.EU - DER Security BLOG!

    Mit Zitat antworten
Alt 25.11.2005, 19:58   #6
Newbie
 
Offline
Registriert seit: 10-2004
Beiträge: 34
Hallo,

so ganz habe ich das noch nicht verstanden, aber folgendes:

wenn diese Batch einen Verzeichnisbaum erstellt, so benötigst Du das Haupverzeichnis und bekommst dann mit

dir /s /b Haupverzeichnis

das Hauptverzeichnis samt aller Sub- und Subsubverzeichnisse geliefert.

Wenn der Inhalt den Du in die .rtf-Dateien schreiben willst immer gleich ist, ist das einfach zu machen mit

for /ff "tokens=*" %%i in ('dir /s /b Hauptverzeichnis') do echo %rtf_code% >> rtf_date.rtf

Ist die Situation eine andere, mußt Du weitere Infos liefern.

Übrigens, in eine Datei schreibt man nicht mit "copy" sondern mit "echo", mit copy werden Dateien kopiert.

MfG maneich
    Mit Zitat antworten
Alt 25.11.2005, 20:41   #7
Moderator
 
Offline
Registriert seit: 06-2001
Ort: Frankfurt a.M.
Beiträge: 6.839
Hi,

hmm ok die Ausführungen scheinen zu komplex zu sein. Also mal noch ein vereinfachtes Beispiel.

Ich habe eine *.rtf Datei diese öffne ich mit einem Texteditor meiner wahl und kopiere den "quellcode" des *.rtf's raus. Nun will ich, dass eine batchdatei dieses *.rtf mit meinem aus dem Texteditor kopierten Inhalt wieder erstellt und sagen wir mal in c:\ legt.

Gruß

Signatur
:: www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt!
:: www.SECURITY-BLOG.EU - DER Security BLOG!

    Mit Zitat antworten
Alt 25.11.2005, 20:56   #8
Moderator
 
Offline
Registriert seit: 06-2001
Ort: Frankfurt a.M.
Beiträge: 6.839
ok und um das ganze vielleicht noch deutlicher zu machen. Ich brauche einen Befehl um z. B. die nachfolgendes Zeilen in eine neu zu erstellende *.rtf Datei zu schreiben.

Code:
{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang2057\deflangfe2057{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f37\froman\fcharset238\fprq2 Times New Roman CE;}{\f38\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f40\froman\fcharset161\fprq2 Times New Roman Greek;}{\f41\froman\fcharset162\fprq2 Times New Roman Tur;}
{\f42\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f43\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f44\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f45\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\f47\fswiss\fcharset238\fprq2 Arial CE;}{\f48\fswiss\fcharset204\fprq2 Arial Cyr;}{\f50\fswiss\fcharset161\fprq2 Arial Greek;}{\f51\fswiss\fcharset162\fprq2 Arial Tur;}{\f52\fswiss\fcharset177\fprq2 Arial (Hebrew);}
{\f53\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f54\fswiss\fcharset186\fprq2 Arial Baltic;}{\f55\fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs24\lang1031\langfe2057\cgrid\langnp1031\langfenp2057 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}{\*\rsidtbl \rsid2043872\rsid3111569\rsid4868793\rsid15813098}
{\*\generator Microsoft Word 10.0.6612;}{\info{\title ###test###}{\author Max Mustermann}{\operator Max Mustermann}{\creatim\yr2005\mo11\dy25\hr14\min46}{\revtim\yr2005\mo11\dy25\hr14\min47}{\version1}{\edmins0}{\nofpages1}{\nofwords1}{\nofchars10}
{\*\company Muster AG}{\nofcharsws10}{\vern16389}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1134 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace120\dgvspace180
\dghorigin1417\dgvorigin1417\dghshow2\dgvshow2\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
\asianbrkrule\rsidroot15813098 \fet0\sectd \psz9\linex0\headery709\footery709\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sectrsid3111569\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang 
{\pntxtb (}{\pntxta )}}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs24\lang1031\langfe2057\cgrid\langnp1031\langfenp2057 {\insrsid2043872 ###test###}{\insrsid4868793 
\par }}

Signatur
:: www.ServerHowTo.de - Das MCSEboard.de HowTo Projekt!
:: www.SECURITY-BLOG.EU - DER Security BLOG!

    Mit Zitat antworten
Alt 26.11.2005, 01:16   #9
Newbie
 
Offline
Registriert seit: 10-2004
Beiträge: 34
Hallo,

so einfach wie Du dir das denkst, ist das nicht.

Du kannst nicht mit irgendeinem Editor eine Worddatei öffnen, den Quellcode auslesen, diesen in eine andere Worddatei schreiben und glauben, daß hier dann das gleiche steht, wie in der ersten Datei. Da steht dann nur der Quellcode drinn.

Dies ist kein Html, wo Du auf dem von Dir beschriebenen Weg hinterher wieder die gleiche Datei wie die ursprüngliche hast.

Die Sache ist eigentlich nicht komplex, sodern sehr einfach. Nur die Sache ist halt die, daß Du mit völlig falschen Vorstellungen hier dran gehst.

Du hast eine rtf-Datei, warum kopierst Du diese nicht einfach nach C:

Willst du diese Datei insgesamt evtl. auch mit geänderten Namen in andere Verzeichnisse kopieren, geht das mit einer Batch. Willst Du nurTeile aus dieser Datei in andere neue .rtf-Dateien übertragen, benötigst Du mindests VBS oder höhere Scriptsprachen.

Code:
Da ich jedoch nur eine Datei als Ausgabe aus der WebAppl haben kann / will bleibt mir nichts anderes übrig als den Inhalt dieser Templates (die für jedes Verzeichnis etwas anderst aussehen) direkt in die Batch zu schreiben.
Welche Veränderungen in den einzelnen Vorlagen? Stehen diese in der Ursprungsdatei oder mußt Du diese dazufügen?

Vielleich reden wir auch nur an einander vorbei. was Du hier anzeigst ist eigentlich kein Queltext, sondern stellen die div. Eigenschaften der Dokuments dar und die übernimmst du automatisch mit dem kopieren z.B. nach C:.

MfG maneich
    Mit Zitat antworten
Alt 26.11.2005, 12:43   #10
Moderator
 
Offline
Registriert seit: 07-2003
Ort: Berlin
Beiträge: 2.709
Hi,

in einem RTF Dokument werden nur ASCII printable characters interpretiert, also Zeichen von 32 bis 126.
Ein einfaches Dokument kann in einer Batch, mit gleichem Ergebnis, unterschiedlich erstellt werden.

Code:
echo {\rtf Ein Hallo\par an alle {\b mcseboard} mitglieder.\par }>c:\doc.rtf
Code:
echo {\rtf >c:\doc.rtf
echo Ein Hallo\par >>c:\doc.rtf
echo an alle {\b mcseboard} mitglieder.\par >>c:\doc.rtf
echo }>>c:\doc.rtf
Aus dem Beispiel oben kann ich schreiben:
Code:
echo {\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang2057\deflangfe2057>c:\doc.rtf
echo {\fonttbl>>c:\doc.rtf
echo {\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}>>c:\doc.rtf
echo {\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}>>c:\doc.rtf
echo {\f37\froman\fcharset238\fprq2 Times New Roman CE;}>>c:\doc.rtf
...
echo {\f53\fswiss\fcharset178\fprq2 Arial (Arabic);}>>c:\doc.rtf
echo {\f54\fswiss\fcharset186\fprq2 Arial Baltic;}>>c:\doc.rtf
echo {\f55\fswiss\fcharset163\fprq2 Arial (Vietnamese);}>>c:\doc.rtf
echo }>>c:\doc.rtf
... usw
Den Color Table kann ich zerlegen
Code:
echo {\colortbl;>>c:\doc.rtf
echo \red0\green0\blue0;>>c:\doc.rtf
echo \red0\green0\blue255;>>c:\doc.rtf
echo \red0\green255\blue255;>>c:\doc.rtf
...
echo \red192\green192\blue192;}>>c:\doc.rtf
oder als eine Zeile schreiben, es macht keinen Unterschied
Code:
echo {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;...\red192\green192\blue192;}>>c:\doc.rtf
Wichtig ist nur das keine Control Words getrennt werden. Sowas geht eher nicht:
Code:
echo {\colo>>c:\doc.rtf
echo rtbl;>>c:\doc.rtf
thorgood
    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Batch: Auffinden von doppelten Dateien, Vergleich der gefundenen Dateien Narugami Windows Forum — Scripting 1 04.06.2008 09:25
Link per Batch erzeugen und auf den Desktop legen lefg Windows Forum — Allgemein 4 09.02.2006 16:15
Abfragen von leeren Dateien in Batch-Dateien Gyal Windows Forum — Allgemein 2 31.12.2005 00:46
pdf aus batch erzeugen jabaah Windows Forum — Allgemein 2 20.10.2004 06:37
Batch dateien vanthe_man Windows Forum — Allgemein 2 23.03.2004 13:17


Alle Zeitangaben in MEZ/CET. Es ist jetzt 07:48 Uhr. Seite generiert in 0,041 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang