55.
Datum: 23.05.2010 Grundlagen für ein Contentmananagementsystem per
batch anhand des Beispiels Kompozer
Der
Sternenhimmelstuermer beschäftigte sich in letzter Zeit mit dem
automatisieren von Anwenderprogrammen mit Hilfe von Batchdateien (siehe
thunderbirbatch
und Mediaplayerbatch).
Die
vorerst letzte Abhandlung über diesen Themenkomplex bietet diese
Impulsabhandlung über die Erstellung eines kleinen
Contentmanagementsystem. Ziel ist es, Kompozer automatisch mit einer
selbst erstellten Seite aus einer Batch zu starten, die als Vorlage mit
aktuellen Datum und Titel versehen ist (Das sind im Prinzip alles nur
Variablen).
Inhaltsangabe
1.
Quellcode der Batchdatei - für viele hört diese Abhandlung
dann schon auf
2. Wie erstelle ich
eine Batch
Erklärung des Codes
3. Variablen erstellen mit dem
Kommandozeilenbefehl set einschließlich Parameter -p
4. Eine neu Webseite mit aktuellen Datum und
Titel erstellen (Vorlage a la cms)
5.
Kompozer und Tipp zur I-frame-Bearbeitung
6. Fazit
---------
1.
Quellcode der Batchdatei
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set /p data=Bitte Dateiname
eingeben:
set /p title=Bitte Titel
angeben:
>
"D:\homepage\homepage1und1\pctipps\%data%" echo.
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<html>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<head>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<title> %title% </title>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "</head>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<body>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<div>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<div>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<h1>Vorlage %date%
</h1><br>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "<iframe name="tip_in_a_box""
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "
src="https://www.sternenhimmelstuermer.eu/pctipps/tipverzeichnisw7.html""
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo " height="400" width="800"></iframe>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "</body>"
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "</html>"
timeout /t 2
start ""
D:\Programme\NVU\kompozer-077\kompozer.exe
"file:///D:\homepage\homepage1und1\pctipps\%data%"
Anmerkung:
Keine Rosen ohne Dornen. Es werden bei dieser Art der
Vorlagenerstellung eine Unmenge Anführungszeichen ausgedruckt. Die
können z. B. bei Kompozer jedoch mit wenigen Mausklicks (Menü
Bearbeiten - Suchen und ersetzen - In Suchen " eintragen
und in Ersetzen Leerzeichen bzw. freilassen...).
-----
2. Wie erstelle ich eine Batch
Als
erstes ein neues Textdokument erstellen (rechte Maustaste auf Desktop
oder in Fensterfläche von Ordner klicken - neu - Textdokument). Die
Dateiendung wird von Hause aus in Windows 7 nicht angezeigt.
Der
Name, unter dem Sie das Dokument abspeichern, ist so ziemlich egal.
Den
o. a. Text, so wie er ist in die Textdatei kopieren (erkennbar an der
Endung *.txt -
um sich Endungen anzeigen zu lassen in einem
beliebigen Ordner - Organisieren - Layout -
Menüleiste
aktivieren und dann in der angezeigten Menüleiste - Extras - Optionen -
Reiterkarte Ansicht : "Erweiterungen bei bekannten Dateitypen
ausblenden" deaktivieren).
Danach Die Dateiendung
von z. B. probe.txt
in probe.bat
Batchdateien
werden durch Doppelklick mit linker Maustaste ausgeführt. Die Zeilen
werden in der Regel nacheinander abgearbeitet. Weiteres bearbeiten geht
über rechte Maustaste und Bearbeiten im Texteditor. Einmal definierte
Variablen innerhalb der Ausführung einer Batch merkt sich die
Kommandozeile.
------------
Erklärung
des Codes
3.
Variablen erstellen mit dem Kommandozeilenbefehl set einschließlich
Parameter -p
Set
wird in der Windowshilfe ausführlich ausführlich und für Anfänger
schwer verständlich erklärt (start - ins Suchfeld cmd.exe eingeben -
mit rechter Maustaste anklicken - "als Administrator ausführen" - set
/? eingeben und mit Eingabetaste bestätigen. Einmal
definierte
Variablen innerhalb der Ausführung einer Batch merkt sich die
Kommandozeile. Nur so sind auch diese später sinnvoll zu
verwenden.
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
Hier
werden die einzelnen Bestandteile des aktuellen Datums in der Variable
%date% gespeichert.
set
heißt dabei: Erstelle eine Variable. jahr ist der Name der Variable -
Vorsicht: Groß und Kleinschreibung beachten: jahr ist nicht
Jahr! ~-4% Sind
die ersten vier Ziffern des Jahres ohne vorherigen Punkt.
~-7,2% Sind
die zwei Ziffern des Monats: Das Datum insgesamt hat mit Punkten und
Ziffern Zehn Stellen. Ab der 7 Stelle werden 2 Ziffern aus dem
Datum übernommen.
~-10,2% bis
zur 10 Stelle werden 2 Stellen übernommen. Das ganze negativ von hinten
nach vorn....alles ziemlich egal für Sie! Wichtig ist, was hinten dabei
raus kommt und das sind drei Variablen des aktuellen Datums ( %date ).
Das
Datum ist nun in der Variable %date%,
die sich an beliebiger Stelle im <Head></Head>
oder <body></body>
- Bereich einer HTML-Seite befindet. Keine Ahnung von HTML und
Kompozer?
- dann hilft diese
Abhandlung vom Sternenhimmelstuermer ein wenig weiter.
set /p data=Bitte Dateiname
eingeben:
set /p title=Bitte Titel
angeben:
set
/p Variablenname= - Hier wird die Kommandozeile
veranlasst,
durch eine Eingabe vom User im sich öffnenden CMD-Fenster die Variable
Variablenname
zu definieren. Das geht erst ab Vista und ist eben das
besondere an dem Parameter P.
Bitte
Dateiname
angeben: ist ein
beliebiger Text mit einem Doppelpunkt, der nicht ausgedruckt wird und
lediglich als Erinnerung für den User benötigt wird.
-----
4. Eine neu Webseite mit aktuellen Datum
und Titel erstellen (Vorlage a la cms)
Als
nächstes wird die HTML-Seite automatisch erstellt. Eine genaue
Erklärung finden Sie hier
01. >
"D:\homepage\homepage1und1\pctipps\%data%" echo.
02.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<html>"
03.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<head>"
04.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<title> %title% </title>"
05.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"</head>"
06.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<body>"
07.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<div>"
08.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<div>"
09.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<h1>Vorlage %date% </h1><br>"
10.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"<iframe name="tip_in_a_box""
11.
>>"D:\homepage\homepage1und1\pctipps\%data%"
Echo "
src="https://www.sternenhimmelstuermer.eu/pctipps/tipverzeichnisw7.html""
12.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo "
height="400" width="800"></iframe>"
13.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"</body>"
14.
>>"D:\homepage\homepage1und1\pctipps\%data%" Echo
"</html>"
Anmerkung:
Sie können natürlich für die Pfade auch Systemvariablen verwenden, die
Sie aus dieser Tabelle
entnehmen können.
Also, die
Zeile 01 erstellt eine neue Datei im o. a. Pfad. Der Name wurde beim
Start der CMD abgefragt (set /p data=Bitte Dateiname
eingeben:).
An
dieser Stelle musste selbstverständlich der komplette Dateiname mit der
Dateiendung .html
oder .htm
eingegeben werden - sonst funktioniert das
nicht.
Zeile 02 -14 ergänzen jeweils die HTML-Seite
zeilenweise - dafür ist das Zeichen >>
- zum zeilenweisen
hinzufügen...
In Zeile 04 wird der Titel zum
Anzeigen im Browser angezeigt, der zuvor abgefragt wurde.
In
Zeile 09 wird das aktuelle Datum (vom Computer) eingefügt. Das geht
natürlich an jedem Ort, also auch unsichtbar im Headbereich.
In
Zeile 10 -12 wird ein I-Frame definiert. Kompozer hat so seine
Schwierigkeiten mit I-Frames - natürlich hat der Sternenhimmelstuermer
auch für dieses Problem eine Lösung.
Anmerkung:
Keine Rosen ohne Dornen. Es werden bei dieser Art der
Vorlagenerstellung eine Unmenge Anführungszeichen ausgedruckt. Die
können z. B. bei Kompozer jedoch mit wenigen Mausklicks (Menü
Bearbeiten - Suchen und ersetzen - In Suchen " eintragen
und in Ersetzen Leerzeichen bzw. freilassen...).
Zeitverzögerung
Da
das Erstellen der HTML-Seite ein paar Sekundenbruchteile dauert,
verzögert
der Sternenhimmelstuermer den nächsten Befehl um 2 Sekunden. Das geht
auch anders, aber da der timeout-
Befehl einfach in der W7- Hilfe
erklärt ist (start - ins Suchfeld cmd.exe eingeben -
mit rechter Maustaste anklicken - "als Administrator ausführen" -
timeout
/? eingeben und mit Eingabetaste bestätigen), mal etwas
Neues. Der Parameter
/t ist für
die Zeit in Sekunden.
timeout /t 2
------
5. Kompozer und Tipp zur
I-frame-Bearbeitung
start ""
D:\Programme\NVU\kompozer-077\kompozer.exe
"file:///D:\homepage\homepage1und1\pctipps\%data%"
Das
ist der Aufruf für die Seite mit Kompozer für die neu erstellte Vorlage
mit Namen %data%
(=Vaiable für eine HTM oder HTML-Seite, die vorher in
der Batch festgelegt wurde - Sie können natürlich auch eine andere
bestehende Seite mit einer Zweizeilenbatch aufrufen:
set /p data=Bitte Dateiname
eingeben:
start ""
D:\Programme\NVU\kompozer-077\kompozer.exe
"file:///D:\homepage\homepage1und1\pctipps\%data%"
Hier
würde sich die Eingabeaufforderung öffnen, Sie könnten irgendeineseite.html im o. a. Verzeichnis pctipps der
Batch eingeben
und mit Eingabetaste bestätigen, worauf die Seite mit Compozer geöffnet
wird. Die Pfade müssen Sie selbstverständlich anpassen).
Hinweis:
Der Pfad zur kompozer.exe
(ausführende Datei von Kompozer) ist bei ihrem PC ein
anderer, da der Sternenhimmelstuermer eine portable Version von Kompozer
benutzt.
Hm,
der angezeigte Name der Registerkarte der HTML-Seite ist erstmal ein
falscher Buchstabensalat - aber man kann die Datei bearbeiten und
speichern. Die Änderungen werden in der richtigen Datei übernommen.
Das
Bearbeiten von Seiten mit einem sogenannten I-Frame in Kompozer ist mit
einem kleinen Trick sehr viel einfacher. Laden Sie zuerst in der ersten
Registerkarte von Kompozer eine Seite ohne I-Frame. Dann öffnen Sie in
einer weiteren Registerkarte die Seite mit I-Frame. Hintergrund der
Maßnahme: Kompozer gibt ansonsten die Fehlermeldung heraus, dass die
Seite nicht bearbeitet werden kann. Die Trägerseite kann zwar trotzdem
bearbeitet werden, aber die Kopierfunktion und andere Menüfunktionen,
so wie die Navigation sind eingeschränkt.
Zwar
kommt die
Fehlermeldung trotzdem (logisch, die I-Frameseite, immer ein absoluter
Link, im Internet kann nicht bearbeitet werden), aber ansonsten geht
die Kopierfunktion und Navigation problemlos.
-----
6. Fazit
Dieses
war wieder einmal eine Impulsabhandlung. Sie können die Batch nun
beliebig mit Metaangaben wie content erweitern. Profis können mit
if-Schleifen andere Dokumente einfügen. Anfängern empfiehlt der
Sternenhimmelstuermer einfach drei Textdokumente zu erstellen und mit
einem Copy Befehl zu einer HTML-Seite zusammenzufügen und hinterher mit
dem Bearbeitungsprogramm zu öffnen. Fast alle Dateien lassen sich von
beliebigen Programmen nach demselben Schema über die
Kommandozeile öffnen (Pfad zur Datei - Leerzeichen und dann zwischen
Anführungszeichen den Pfad zur Datei einschließlich Datei und Endung).
Sehen Sie dazu auch die Hyperlinks in der Einleitung. Kompozer schlägt
da leider etwas aus der Reihe - egal, dafür gibt es ja die
Sternenhimmelstuermerhomepage!