115. Projekt Merlin: multifunktionale Software zum Suchen und zur
Archivierung und mehr
Einleitung
In letzter Zeit gab es viel HTA, CMD, VBS und HTA im Verbund auf der
Sternenhimmelstuermerseite. Das wird jetzt in dieser Abhandlung
zusammengefasst im Projekt Merlin.
Diese Seite wird in Abständen ergänzt. Dann wird es in den folgenden
Abhandlungen wieder leichte Kost geben. Der Sternenhimmelstuermer macht
nicht den Fehler sich in Quellcodes zu verlieren...
Die neueste Version mit Suche in Worddokumenten und für Anfänger erklärt finden Sie hier.
Inhaltsangabe
Sinn des Projektes Merlin
Grobe Beschreibung der Gliederung von Merlin und Bearbeitungstipps
Eigenkritik
Bearbeitungshinweise
Voraussetzungen für den Gebrauch von Merlin
Erste Schritte
Was kann Merlin sonst noch?
Quellcode
Sinn des Projektes Merlin
Beim "Programmieren" größerer Anwendungen entstehen Problemlagen, die
der Sternenhimmelstuermer beim Vorstellen kleiner Codefragmente nicht
berücksichtigen muss. Diese erlebten Probleme können dann wieder in
einzelnen kleinen Abhandlungen Häppchenweise erklärt werden. Merlin
selbst ist dazu freilich nicht geeignet, da es eine Qual für den
geneigten Leser wäre, sich durch hunderte Zeilen durchzukämpfen. Für
den Fortgeschrittenen hingegen reicht eine Oberflächliche Beschreibung.
Grobe Beschreibung der Gliederung von Merlin und Bearbeitungstipps
Merlin ist ein Projekt, dass ohne größere Planung entstand - aus
professioneller sicht ein Fehler. Die grobe Gliederung ergab sich
automatisch aus dem dreigeteilten Frameset. Der obere Frame wurde als
Eingabefläche deklariert, der linke für weitere Funkttionen und der
untere für die Anzeige von Inhalten. Das Ganze wurde in
eine Batch gepackt, die als Installations- und Ausführungsdatei dient.
Die wurde chronologisch aufgebaut. Erst ein paar Abfragen, ob die
HTA mit den Frames schon existiert oder ob schon einige Textdokumente
für die Verarbeitung vorliegen. Davon hängt die weitere
Ausführung der Batch ab: Liegt die HTA noch nicht vor wird Sie erstellt
und gestartet und die Batch beendet.
Gibt der User Eingaben ein, so wird in der Regel nach Betätigung des
RunButtons in der HTA ein Textdokument erstellt und die Batch wiederum
gestartet.
Nun kommen wir zur zweiten Gliederungsebene: Die eigentlichen Anwendungen sind in der Regel am Ende der Batch. Ein if exist goto Anwendung Befehl schickt die Verarbeitung in der Kommandozeile zu einem Sprungpunkt (:Anwendung
). Nach der Ausführung wird ein Inhaltsframe ( inhalten.htm) erstellt und mit einem Exit Befehl die Batch verlassen. Die HTA wartet immer auf die Ausführung der Batch: >>"%destination%linkst.htm"
ECHO shell.run """merlin.bat""", 1, true .
Dann wird das Ergebnis noch im Frame angezeigt.
Bei der Archivbatch wurde noch zusätzlich zwei Batches in der
Batch eingepackt, die ausgepackt werden und für
Weiterverarbeitung verwendet werden.
Eigenkritik
Die Frage ist berechtigt, ob Fames und eine ausgelagerte Batch
hübsch sind. Klar, man hätte das alles in eine HTA verpacken können.
Der Sternenhimmelstuermer war ein wenig faul. Das Escapen in VBS von
Batchdateien ist ein wenig komplizierter. Der Framewechsel ist genauso
unnötig. In VBS können Sie Textflächen adressieren und Ergebnisse
genausogut ohne Frames anzeigen. Andererseits ist Merlin eine
Probeanwendung. Frames waren gerade Thema dieser Seite. Zum Ausgleich
wird der Sternenhimmelstuermer andere Techniken in Merlin einbauen.
Das sollten Sie nie machen, da es dem Grundsatz einer sauberen Gliederung widerspricht! Ein wenig Vhaos ist ganz gesund...
Bearbeitungshinweise
Der Sternenhimmelstuermer arbeitet grundsätzlich mit dem einfachen
Editor von Windows. Der stürzt nie ab und hat die wichtigsten
Funktionen wie Suchen und Ersetzen.
Gerade beim Escapen eingebauter Zeichen wie > zu ^> ist das mit Suchen und Ersetzen easy. Dann öffnet der Editor von HTML über cmd bis zu VBS einfach alles.
Bearbeitungstipp: Erstellen Sie eine Verknüpfung zum Editor auf dem
Desktop und lassen Sie per Drag und Drop die Dateien einfach
drauffallen. Das öffnen wird ansonsten zur Qual: Batches werden mit
einem Rechtsklick und Auswahl bearbeiten mit dem Editor geöffnet. HTA
und HTML mit Standardprogrammen zu öffnen ist auch nicht gerade
zielführend...
Dann sollten Sie mit Copy und Paste arbeiten. Bei großen Anwendungen
wiederholt sich viel. Je größer die Anwendung wird, desto leichter wird
copy und paste - leider auch verbunden damit der Fehlerquotient größer.
Beispiel Input, RunButton Erstellung von Textdokumenten mit HTA.
Tausend mal derselbe Code. Mit jeder Anwendung, die Sie programmieren, erschaffen Sie sich eine kleine Programmbibliothek.
Gefahr dabei: Ihr Code entwickelt sich nicht weiter und unsauberer Code
wird immer wieder weiterverarbeitet. Deshalb versucht der
Sternenhimmelstuermer im Projekt Merlin so viel Variationen wie möglich
unterzubringen.
Dabei geht die Gliederung verloren, aber da der Sternenhimmelstuermer
jede Zeile kennt, weiß er, welche Zeilen für andere Projekte wichtig
sind. Dasselbe gilt für Sie: Schaffen Sie sich Codeschnipsel in
einer funktionierenden Anwendung.
Klar können Sie den Code einfach kopieren. Wenn Sie aber nicht wissen,
wozu der Code dient, dann bringt Ihnen das herzlich wenig.
Voraussetzungen für den Gebrauch!
Merlin ist eine Softwareoberfläche für CMD-Skripts. Also müssen HTA,VBS
und Batches ausführbar sein. Internet Explorer ist Pflicht. Die Batch
muss immer mit der HTA in einem Ordner in einem Verzeichnis liegen.
Merlin muss immer relativ oder über den Ordnern liegen, die bearbeitet
werden. Das spart die Eingabe von Pfaden und ist Teil eines einfachen
Bedienungskonzeptes.
Erste Schritte
Code kopieren und in ein Textdokument einfügen. In Merlin.bat (Der Name
ist nicht änderbar...) ändern. Denken Sie daran, dass Dateiendungen
eingeblendet sein müssen.
Doppelklicken. Es werden drei HTM-Seiten und eine HTA erstellt, die
sich sofort öffnet. Später können Sie Merlin per Batch oder per HTA
starten - das ist wurscht.
Wenn Sie per HTA starten, sehen Sie die Ergebnisse von der letzten
Benutzung. Die Batch und HTA müssen immer im selben Ordner liegen, da
Batch und HTA immer zusammenarbeiten...
Merlin ist in drei Frames eingeteilt. Im oberen Frame wird in das
Eingabefeld für die Suche nach Dateien oder Inhalte. Im linken Frame
ist der Suchbutton für die Suche nach Inhalten. Diese ist wie gesagt
auf wenige Dateitypen beschränkt. Daher kein eigenes Eingabefeld,
sondern Mitbenutzung der Haupteingabefläche.
Der Zurück-Button neben dem Eingabefeld lädt die anderen zwei Frames
(Inhalt und linker Frame) neu. Das ist wichtig, wenn Sie z. B.
einen Ergebnislink angeklickt haben und dieser Im unteren
Frame angezeigt wird. Durch den Zurück-Button kommen Sie wieder zur
Linkliste, die von einer Batch als Ergebnis in den Frame
eingearbeitet wurde - hört sich kompliziert an, aber Sie werden es
schnell verstehen - so viele Schaltflächen gibt es ja nicht...
Für die Archivierung müssen die Quelldateien in Unterverzeichnissen
oder relativ zur Batch liegen. Sie geben Dateiendung ohne Punkt,
Jahreszahl in vierstelliger Zahl (z. B. 2012) und die Anzahl der zu
archivierenden Jahre in den linken Frame ein (z. B. 3). Danach
drücken Sie den Button Archivierung.
Die Archivierung im Linken Frame erstellt einen Unterordner relativ zur
Batch namens Archivierung, in dem mehrere Unterordner mit Jahreszahlen
wie z. B. 2012, 2011 und 2010 bei Eingabe von 2012 und 2 als Zahl.
Was kann Merlin sonst noch?
Zur Zeit ist Merlin eine Desktop-Suchmaschine: Sie sucht nach
sämtlichen Dateien, benötigt dafür Dateinamen und Endung. Wildcards wie
*.pdf sind erlaubt
Dann bei Log, bat, htm, html und Textdateien ist eine Inhaltssuche nach
Wörtern oder Sätzen möglich. Die Ausgabe erfolgt in ausführbaren Links
im Main-Frame.
Auf die Dauer wird Merlin ein Schweizer Taschenmesser, aber das hat ja
Zeit...
Einstweilen verweist der Sternenhimmelstuermer auf die Abhandlungen:
- Archivierung (Der
Quellcode wurde stark verbessert, die Batch bestimmt ihrer Lage mit
Dos-konformen Pfad)
- Suchmaschine
Erstmal der Quellcode. Der Text und weitere Erklärungen müssen noch
warten...Beim Coden vergeht die Zeit und die Beschreibungen treten zur
Zeit in den Hintergrund...
Quellcode
Dateiname: merlin.bat
If exist archiv.log goto archiv
If exist dateiliste.log goto
dateiliste
If exist suchwort.log goto
inhaltensliste
set destination=%~dp0%
>"%destination%linkst.htm"
ECHO ^<html^>
>>"%destination%linkst.htm"
ECHO ^<head^>
>>"%destination%linkst.htm"
ECHO ^<title^>HTA Hilfe für Batchschreiber^</title^>
>>"%destination%linkst.htm"
ECHO ^<HTA:APPLICATION
>>"%destination%linkst.htm"
ECHO
APPLICATIONNAME="HTAHilfe"
>>"%destination%linkst.htm"
ECHO SCROLL="yes"
>>"%destination%linkst.htm"
ECHO SINGLEINSTANCE="yes"
>>"%destination%linkst.htm"
ECHO WINDOWSTATE="maximize"
>>"%destination%linkst.htm"
ECHO ^>
>>"%destination%linkst.htm"
ECHO ^<style type="text/css"^>
>>"%destination%linkst.htm"
ECHO a {color:#FFFF33; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%linkst.htm"
ECHO a:hover {color:#FF0000; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%linkst.htm"
ECHO a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:8pt; text-decoration:none}
>>"%destination%linkst.htm"
ECHO a.menu1:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:8pt;
text-decoration:none}
>>"%destination%linkst.htm"
ECHO a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:9pt; text-decoration:none}
>>"%destination%linkst.htm"
ECHO a.menu2:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:9pt;
text-decoration:none}
>>"%destination%linkst.htm"
ECHO ^</style^>
>>"%destination%linkst.htm"
ECHO ^</head^>
>>"%destination%linkst.htm"
ECHO ^</SCRIPT^>
>>"%destination%linkst.htm"
ECHO ^<SCRIPT Language="VBScript"^>
>>"%destination%linkst.htm"
ECHO Sub RunScript
>>"%destination%linkst.htm"
ECHO Set objFSO =
CreateObject("Scripting.FileSystemObject")
>>"%destination%linkst.htm"
ECHO objFSO.CreateTextFile("suchwort.log")
>>"%destination%linkst.htm"
ECHO Set objFile =
objFSO.OpenTextFile("suchwort.log", 2)
>>"%destination%linkst.htm"
ECHO objFile.WriteLine
WINDOW.PARENT.obend.BasicTextBox2.Value
>>"%destination%linkst.htm"
ECHO objFile.Close
>>"%destination%linkst.htm"
ECHO dim shell
>>"%destination%linkst.htm"
ECHO set shell = createobject("wscript.shell")
>>"%destination%linkst.htm"
ECHO shell.run """merlin.bat""", 1, true
>>"%destination%linkst.htm"
ECHO WINDOW.PARENT.inhalten.LOCATION.HREF="inhalten.HTM"
>>"%destination%linkst.htm"
ECHO End Sub
>>"%destination%linkst.htm"
ECHO ^</SCRIPT^>
>>"%destination%linkst.htm"
ECHO ^<SCRIPT Language="VBScript"^>
>>"%destination%linkst.htm"
ECHO Sub Runarchiv
>>"%destination%linkst.htm"
ECHO Set objFSO =
CreateObject("Scripting.FileSystemObject")
>>"%destination%linkst.htm"
ECHO objFSO.CreateTextFile("archiv.log")
>>"%destination%linkst.htm"
ECHO Set objFile =
objFSO.OpenTextFile("archiv.log", 2)
>>"%destination%linkst.htm"
ECHO objFile.WriteLine Dateiende.Value
>>"%destination%linkst.htm"
ECHO objFile.Close
>>"%destination%linkst.htm"
ECHO Set objFSO =
CreateObject("Scripting.FileSystemObject")
>>"%destination%linkst.htm"
ECHO objFSO.CreateTextFile("Jahrhundert.log")
>>"%destination%linkst.htm"
ECHO Set objFile =
objFSO.OpenTextFile("Jahrhundert.log", 2)
>>"%destination%linkst.htm"
ECHO objFile.WriteLine Jahrhundert.Value
>>"%destination%linkst.htm"
ECHO objFile.Close
>>"%destination%linkst.htm"
ECHO Set objFSO =
CreateObject("Scripting.FileSystemObject")
>>"%destination%linkst.htm"
ECHO objFSO.CreateTextFile("Jahre.log")
>>"%destination%linkst.htm"
ECHO Set objFile =
objFSO.OpenTextFile("Jahre.log", 2)
>>"%destination%linkst.htm"
ECHO objFile.WriteLine Jahre.Value
>>"%destination%linkst.htm"
ECHO objFile.Close
>>"%destination%linkst.htm"
ECHO dim shell
>>"%destination%linkst.htm"
ECHO set shell = createobject("wscript.shell")
>>"%destination%linkst.htm"
ECHO shell.run """merlin.bat""", 1, true
>>"%destination%linkst.htm"
ECHO WINDOW.PARENT.inhalten.LOCATION.HREF="inhalten.HTM"
>>"%destination%linkst.htm"
ECHO End Sub
>>"%destination%linkst.htm"
ECHO ^</SCRIPT^>
>>"%destination%linkst.htm"
ECHO ^<body style="color: white; background-color: black;"
alink="red"
>>"%destination%linkst.htm"
ECHO link="yellow" vlink="#3333ff"^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>Inhaltssuche von Dateien im Format: html, txt oder
bat ^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<input id=runbutton class="button" type="button"
value="Suche" name="run_button" onClick="RunScript"^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>Archivierung von Dateien: Dateitypende ohne Punkt
eingeben^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>^<div^>^<input type="text" name="Dateiende"
size="5"^>^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>Höchste Jahr vierstellig eingeben^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>^<div^>^<input type="text"
name="Jahrhundert" size="5"^>^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>Jahresanzahl der zu archivierenden Jahre
eingeben^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<div^>^<div^>^<input type="text" name="Jahre"
size="5"^>^</div^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^<input id=runbutton class="button" type="button"
value="Archiv" name="run_button" onClick="Runarchiv"^>
>>"%destination%linkst.htm"
ECHO ^<br^>
>>"%destination%linkst.htm"
ECHO ^</body^>
>>"%destination%linkst.htm"
ECHO ^</html^>
>"%destination%inhalten.htm"
ECHO ^<html^>
>>"%destination%inhalten.htm"
ECHO ^<head^>
>>"%destination%inhalten.htm"
ECHO ^<title^>HTA Hilfe für Batchschreiber^</title^>
>>"%destination%inhalten.htm"
ECHO ^<HTA:APPLICATION
>>"%destination%inhalten.htm"
ECHO
APPLICATIONNAME="HTAHilfe"
>>"%destination%inhalten.htm"
ECHO SCROLL="yes"
>>"%destination%inhalten.htm"
ECHO SINGLEINSTANCE="yes"
>>"%destination%inhalten.htm"
ECHO WINDOWSTATE="maximize"
>>"%destination%inhalten.htm"
ECHO ^>
>>"%destination%inhalten.htm"
ECHO ^<style type="text/css"^>
>>"%destination%inhalten.htm"
ECHO a {color:#FFFF33; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%inhalten.htm"
ECHO a:hover {color:#FF0000; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%inhalten.htm"
ECHO a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:8pt; text-decoration:none}
>>"%destination%inhalten.htm"
ECHO a.menu1:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:8pt;
text-decoration:none}
>>"%destination%inhalten.htm"
ECHO a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:9pt; text-decoration:none}
>>"%destination%inhalten.htm"
ECHO a.menu2:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:9pt;
text-decoration:none}
>>"%destination%inhalten.htm"
ECHO ^</style^>
>>"%destination%inhalten.htm"
ECHO ^</head^>
>>"%destination%inhalten.htm"
ECHO ^<body style="color: white; background-color: black;"
alink="red"
>>"%destination%inhalten.htm"
ECHO link="yellow" vlink="#3333ff"^>
>>"%destination%inhalten.htm"
ECHO ^<br^>
>>"%destination%inhalten.htm"
ECHO ^</body^>
>>"%destination%inhalten.htm"
ECHO ^</html^>
>"%destination%merlin.hta"
ECHO ^<html^>
>>"%destination%merlin.hta"
ECHO ^<head^>
>>"%destination%merlin.hta"
ECHO ^<title^>Merlin^</title^>
>>"%destination%merlin.hta"
ECHO ^<HTA:APPLICATION
>>"%destination%merlin.hta"
ECHO ID="merlin"
>>"%destination%merlin.hta"
ECHO APPLICATIONNAME="Merlin"
>>"%destination%merlin.hta"
ECHO SCROLL="yes"
>>"%destination%merlin.hta"
ECHO SINGLEINSTANCE="yes"
>>"%destination%merlin.hta"
ECHO WINDOWSTATE="maximize"
>>"%destination%merlin.hta"
ECHO Border="thick"
>>"%destination%merlin.hta"
ECHO ^>
>>"%destination%merlin.hta"
ECHO ^</head^>
>>"%destination%merlin.hta"
ECHO ^<frameset cols="200,*" frameborder="1" border="1"
framespacing="1"^>
>>"%destination%merlin.hta"
ECHO ^<frame application="yes" src="linkst.htm" name="linkst"
scrolling="auto"^>
>>"%destination%merlin.hta"
ECHO ^<frameset rows="400,*" frameborder="1" border="1"
framespacing="1"^>
>>"%destination%merlin.hta"
ECHO ^<frame application="yes" src="obend.htm" name="obend"
scrolling="auto"^>
>>"%destination%merlin.hta"
ECHO ^<frame application="yes" src="inhalten.htm" name="inhalten"
scrolling="auto"^>
>>"%destination%merlin.hta"
ECHO ^</frameset^>
>>"%destination%merlin.hta"
ECHO ^</frameset^>
>>"%destination%merlin.hta"
ECHO ^</html^>
>"%destination%obend.htm"
ECHO ^<html^>
>>"%destination%obend.htm"
ECHO ^<head^>
>>"%destination%obend.htm"
ECHO ^<title^>HTA Hilfe für Batchschreiber^</title^>
>>"%destination%obend.htm"
ECHO ^<HTA:APPLICATION
>>"%destination%obend.htm"
ECHO
APPLICATIONNAME="Merlin"
>>"%destination%obend.htm"
ECHO SCROLL="yes"
>>"%destination%obend.htm"
ECHO SINGLEINSTANCE="yes"
>>"%destination%obend.htm"
ECHO WINDOWSTATE="maximize"
>>"%destination%obend.htm"
ECHO ^>
>>"%destination%obend.htm"
ECHO ^>
>>"%destination%obend.htm"
ECHO ^<style type="text/css"^>
>>"%destination%obend.htm"
ECHO a {color:#FFFF33; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%obend.htm"
ECHO a:hover {color:#FF0000; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%obend.htm"
ECHO a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:8pt; text-decoration:none}
>>"%destination%obend.htm"
ECHO a.menu1:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:8pt;
text-decoration:none}
>>"%destination%obend.htm"
ECHO a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:9pt; text-decoration:none}
>>"%destination%obend.htm"
ECHO a.menu2:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:9pt;
text-decoration:none}
>>"%destination%obend.htm"
ECHO ^</style^>
>>"%destination%obend.htm"
ECHO ^</head^>
>>"%destination%obend.htm"
ECHO ^</SCRIPT^>
>>"%destination%obend.htm"
ECHO ^<SCRIPT Language="VBScript"^>
>>"%destination%obend.htm"
ECHO Sub RunMerlin
>>"%destination%obend.htm"
ECHO Set objFSO =
CreateObject("Scripting.FileSystemObject")
>>"%destination%obend.htm"
ECHO objFSO.CreateTextFile("dateiliste.log")
>>"%destination%obend.htm"
ECHO Set objFile =
objFSO.OpenTextFile("dateiliste.log", 2)
>>"%destination%obend.htm"
ECHO objFile.WriteLine BasicTextBox2.Value
>>"%destination%obend.htm"
ECHO objFile.Close
>>"%destination%obend.htm"
ECHO dim shell
>>"%destination%obend.htm"
ECHO set shell = createobject("wscript.shell")
>>"%destination%obend.htm"
ECHO shell.run """merlin.bat""", 1, true
>>"%destination%obend.htm"
ECHO WINDOW.PARENT.inhalten.LOCATION.HREF="inhalten.HTM"
>>"%destination%obend.htm"
ECHO End Sub
>>"%destination%obend.htm"
ECHO ^</SCRIPT^>
>>"%destination%obend.htm"
ECHO ^</SCRIPT^>
>>"%destination%obend.htm"
ECHO ^<SCRIPT Language="VBScript"^>
>>"%destination%obend.htm"
ECHO Sub neu
>>"%destination%obend.htm"
ECHO WINDOW.PARENT.inhalten.LOCATION.HREF="inhalten.HTM"
>>"%destination%obend.htm"
ECHO WINDOW.PARENT.linkst.LOCATION.HREF="linkst.htm"
>>"%destination%obend.htm"
ECHO End Sub
>>"%destination%obend.htm"
ECHO ^</SCRIPT^>
>>"%destination%obend.htm"
ECHO ^<body style="color: white; background-color: black;"
alink="red"
>>"%destination%obend.htm"
ECHO link="yellow" vlink="#3333ff"^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO
^<center^>^<div^>^<big^>^<big^>^<big^>^<span
style="color: red;"^>^賬 Merlin
^賬^</span^>^</big^>^</big^>^</big^>^</div^>^<c/enter^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<div^>Suchet und Ihr werdet finden!^</div^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<div^>Eingabe: Dateinamen.Endung Sucht alle Dateinamen,
auch mit Wildcard wie z. B. *.pdf^</div^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<div^>^<input type="text" name="BasicTextBox2"
size="100"^>^ ^ ^ ^<input
id=runbutton class="button" type="button" value="zurück"
name="run_button" onClick="neu"^>^</div^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<br^>
>>"%destination%obend.htm"
ECHO ^<input id=runbutton class="button" type="button"
value="Suche" name="run_button" onClick="RunMerlin"^>
>>"%destination%obend.htm"
ECHO ^<br^>
start "" "merlin.hta"
exit
:dateiliste
set /p
Dateiname=<dateiliste.log
set destination=%~dp0%
chcp 28591 > NUL
for /f "delims=" %%i in ('dir
"%destination%%Dateiname%" /s /b /a-d') do @echo %%~zi^:%%~ni^:%%i
>>gro.log
>"%destination%inhalten.html"
ECHO ^<html^>
>>"%destination%inhalten.html"
ECHO ^<head^>
>>"%destination%inhalten.html"
ECHO ^<title^>HTA Hilfe für Batchschreiber^</title^>
>>"%destination%inhalten.html"
ECHO ^<HTA:APPLICATION
>>"%destination%inhalten.html"
ECHO
APPLICATIONNAME="HTAHilfe"
>>"%destination%inhalten.html"
ECHO SCROLL="yes"
>>"%destination%inhalten.html"
ECHO SINGLEINSTANCE="yes"
>>"%destination%inhalten.html"
ECHO WINDOWSTATE="maximize"
>>"%destination%inhalten.html"
ECHO ^>
>>"%destination%inhalten.html"
ECHO ^<style type="text/css"^>
>>"%destination%inhalten.html"
ECHO a {color:#FFFF33; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a:hover {color:#FF0000; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:8pt; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu1:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:8pt;
text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:9pt; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu2:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:9pt;
text-decoration:none}
>>"%destination%inhalten.html"
ECHO ^</style^>
>>"%destination%inhalten.html"
ECHO ^</head^>
>>"%destination%inhalten.html"
ECHO ^<body style="color: white; background-color: black;"
alink="red"
>>"%destination%inhalten.html"
ECHO link="yellow" vlink="#3333ff"^>
>>"%destination%inhalten.html"
ECHO ^<br^>
>>"%destination%inhalten.htm"
ECHO ^<div^>Das Ergebnis der Suche:^</div^>
>>"%destination%inhalten.htm"
ECHO ^<br^>
chcp 28591 > NUL
for /F "delims=: tokens=1,2,3*"
%%i in (gro.log) do nothing >>neu_%%i.log &
>>"neu_%%i.log" Echo ^<p class=MsoNormal^>^<span lang=DE
style='font-weight:normal'^>^<a href="%%k:%%l"^>Dateiname %%j
Größe %%i^</a^>^</span^>^</p^>
copy neu_*.log erg.log
copy inhalten.html + erg.log
inhalten.htm
del dateiliste.log
del neu.htm
del neu_*.log
del gro.log
del erg.log
del inhalten.html
>>"%destination%inhalten.htm"
ECHO ^</body^>
>>"%destination%inhalten.htm"
ECHO ^</html^>
exit
:inhaltensliste
set destination=%~dp0%
set /p Suche=<suchwort.log
findstr /r /s /i /c:"%Suche%"
%destination%*.htm >erg.log
findstr /r /s /i /c:"%Suche%"
%destination%*.html >>erg.log
findstr /r /s /i /c:"%Suche%"
%destination%*.txt >>erg.log
findstr /r /s /i /c:"%Suche%"
%destination%*.bat >>erg.log
>"%destination%inhalten.html"
ECHO ^<html^>
>>"%destination%inhalten.html"
ECHO ^<head^>
>>"%destination%inhalten.html"
ECHO ^<title^>HTA Hilfe für Batchschreiber^</title^>
>>"%destination%inhalten.html"
ECHO ^<HTA:APPLICATION
>>"%destination%inhalten.html"
ECHO
APPLICATIONNAME="HTAHilfe"
>>"%destination%inhalten.html"
ECHO SCROLL="yes"
>>"%destination%inhalten.html"
ECHO SINGLEINSTANCE="yes"
>>"%destination%inhalten.html"
ECHO WINDOWSTATE="maximize"
>>"%destination%inhalten.html"
ECHO ^>
>>"%destination%inhalten.html"
ECHO ^<style type="text/css"^>
>>"%destination%inhalten.html"
ECHO a {color:#FFFF33; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a:hover {color:#FF0000; font-size:10pt;
font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:8pt; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu1:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:8pt;
text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma;
font-size:9pt; text-decoration:none}
>>"%destination%inhalten.html"
ECHO a.menu2:hover {color:#FF0000;
font-family:verdana,sans-serif,tahoma; font-size:9pt;
text-decoration:none}
>>"%destination%inhalten.html"
ECHO ^</style^>
>>"%destination%inhalten.html"
ECHO ^</head^>
>>"%destination%inhalten.html"
ECHO ^<body style="color: white; background-color: black;"
alink="red"
>>"%destination%inhalten.html"
ECHO link="yellow" vlink="#3333ff"^>
>>"%destination%inhalten.html"
ECHO ^<br^>
>>"%destination%inhalten.htm"
ECHO ^<div^>Das Ergebnis der Suche:^</div^>
>>"%destination%inhalten.htm"
ECHO ^<br^>
FOR /F "tokens=*" %%A IN
('findstr /N .* "erg.log"') DO echo %%A>> zahl.log
for /F "delims=: tokens=1,2,3*"
%%i in (zahl.log) do nothing >>new_%%i.log &
>>"new_%%i.log" Echo ^<p class=MsoNormal^>^<span lang=EN
style='font-weight:normal'^>^<a href="%%k"^>Text:
%%l^</a^>^</span^>^</p^>
copy new_*.log result.log
copy inhalten.html + result.log
inhalten.htm
del inhalten.html
del suchwort.log
del result.log
del new_*.log
del erg.log
del zahl.log
>>"%destination%inhalten.htm"
ECHO ^</body^>
>>"%destination%inhalten.htm"
ECHO ^</html^>
exit
:archiv
mkdir "archivierung"
for %%I in (.) do echo
%%~sI >archivierung\zyx.txt
copy archiv.log
archivierung\archiv.log
copy Jahre.log
archivierung\Jahre.log
copy Jahrhundert.log
archivierung\Jahrhundert.log
>"archive.bat" ECHO set
/p ende=^<archiv.log
>>"archive.bat" ECHO for
%%%%I in (.) do echo %%%%~sI ^>abc.txt
>>"archive.bat" ECHO set
/p quelle=^<zyx.txt
>>"archive.bat" ECHO set
/p standort =^<abc.txt
>>"archive.bat" ECHO chcp
28591 ^> NUL
>>"archive.bat" ECHO FOR
/R "%%quelle%%" %%%%I IN (.) DO xcopy "%%%%I\*.%%ende%%" %%standort%%
/Y /V /I /D
>>"archive.bat" ECHO CALL
bereinigung.bat %%1 A:
>>"archive.bat" ECHO chcp
28591 ^> NUL
>>"archive.bat" ECHO for
%%%%f in ("*.%%ende%%") do ^@echo %%%%f %%%%~ntf
^>^>test.html
>>"archive.bat" ECHO set
/p zeit=^<jahrhundert.log
>>"archive.bat" ECHO set
/p zeitraum=^<jahre.log
>>"archive.bat" ECHO set
/a end=%%zeit%%-%%zeitraum%%
>>"archive.bat" ECHO chcp
28591 ^> NUL
>>"archive.bat" ECHO FOR
/F "Tokens=1,2,3,4" %%%%i in (test.html) do vo ^>%%%%l_%%%%j.log
^& ^>^>"%%%%l_%%%%j.log" Echo chcp 28591 ^^^> NUL
^& ^>^>"%%%%l_%%%%j.log" Echo xcopy /i /k /d /y %%%%i
%%zeit%%
>>"archive.bat" ECHO mkdir
"%%zeit%%"
>>"archive.bat" ECHO goto
erste
>>"archive.bat" ECHO
:schleife
>>"archive.bat" ECHO set
/a zeit=%%zeit%%-1
>>"archive.bat" ECHO del
*.log
>>"archive.bat" ECHO chcp
28591 ^> NUL
>>"archive.bat" ECHO FOR
/F "Tokens=1,2,3,4" %%%%i in (test.html) do vo ^>%%%%l_%%%%j.log
^& ^>^>"%%%%l_%%%%j.log" Echo chcp 28591 ^^^> NUL
^& ^>^>"%%%%l_%%%%j.log" Echo xcopy /i /k /d /y %%%%i
%%zeit%%
>>"archive.bat" ECHO mkdir
"%%zeit%%"
>>"archive.bat" ECHO :erste
>>"archive.bat" ECHO chcp
28591 ^> NUL
>>"archive.bat" ECHO if
exist **.**.%%zeit%%.log (xcopy /i /k /d /y **.**.%%zeit%%.log *.txt)
else goto weiter
>>"archive.bat" ECHO chcp
28591 ^> NUL
>>"archive.bat" ECHO for
/f "TOKENS=*" %%%%a in ('dir **.**.%%zeit%%.txt /b') do type "%%%%a"
^>^>ergebnis_%%zeit%%.bat
>>"archive.bat" ECHO start
/wait cmd /c "ergebnis_%%zeit%%.bat"
>>"archive.bat" ECHO del
ergebnis_%%zeit%%.bat
>>"archive.bat" ECHO
:weiter
>>"archive.bat" ECHO if
%%zeit%% equ %%end%% goto ende
>>"archive.bat" ECHO goto
schleife
>>"archive.bat" ECHO :ende
>>"archive.bat" ECHO del
*.txt
>>"archive.bat" ECHO del
*.log
>>"archive.bat" ECHO del
*.%%ende%%
>>"archive.bat" ECHO copy
test.html test.log
>>"archive.bat" ECHO del
test.html
>>"archive.bat" ECHO exit
>"bereinigung.bat" ECHO
@echo off ^& setlocal
>>"bereinigung.bat" ECHO
FOR %%%%i in ( "* *.%%ende%%") do call :Nameneu "%%%%~nxi"
>>"bereinigung.bat" ECHO
goto :eof
>>"bereinigung.bat" ECHO
:Nameneu
>>"bereinigung.bat" ECHO
Set "urname=%%~1"
>>"bereinigung.bat" ECHO
Set "neu=%%urname: =_%%"
>>"bereinigung.bat" ECHO
Ren "%%urname%%" "%%neu%%"
>>"bereinigung.bat" ECHO
goto :eof
copy archive.bat
archivierung\archive.bat
copy bereinigung.bat
archivierung\bereinigung.bat
for %%I in (.) do echo
%%~sI\archivierung >wechsel.txt
set /p wechsel=<wechsel.txt
del Jahre.log
del Jahrhundert.log
del wechsel.txt
del archive.bat
del bereinigung.bat
del archiv.log
cd %wechsel%
start "" "archive.bat"
exit
Das ist eine ganze Menge Holz, aber wenn der Sternenhimmellstuermer nun
versuchen würde, dass alles zu erklären, so würden sich nur wenige
Leser freuen. Die Befehle hingegen wurden alle in den
Abhandlungen erklärt...
Zur
besseren Orientierung auf den über 911 (Din A 4) Tippseiten
in Abhandlungen von drei Generationen Windows der
Sternenenhimmelstuermerpage die individualisierte Suchmaschine von
Google mit Suchergebnissen nur von dieser Homepage: Selbst
der Sternenhimmelstuemer findet sich bei diesem umfassenden Content
trotz präziser Sortierung der Abhandlungen nur mit Hilfe von
Suchmaschinen zu
recht...
Loading
Disclaimer: Sie geben
bei
der Suche Daten ein, deren Verwendung nach den Regeln von Google
weiterverwendet werden können.
Der Sternenhimmelstuermer hat darauf keinen Einfluss, aber kommt mit
diesem Hinweis der Verpflichtung aus dem Datenschutz und
Telekommunikationsgesetz nach, auf diesen Umstand aufmerksam
zu machen. Mit der Eingabe eines Suchwortes stimmen Sie dieser
Verfahrensweise zu, der Sternenhimmelstuermer kann hierfür nicht
haftbar gemacht werden. Der Sternenhimmelstuermer distanziert sich von
den Werbeinhalten.
Beim Betätigen dieses Buttons geben Sie Daten
an Google weiter über deren Verwendung der Webmaster keinen Einfluss
hat. Nach dem Datenschutzgesetz und Telekommunikationsgesetz ist der
Webmaster verpflichtet, Sie darauf aufmerksam zu machen - Der
Sternenhimmelstuermer traut Google +