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;"^>^&#x8CEC; Merlin ^&#x8CEC;^</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"^>^&nbsp;^&nbsp;^&nbsp;^<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 +




Impressum
Datenschutz