46. Windows 7: aktuelle Hilfe der Standardbefehle mit Batch erstellen

Der Sternenhimmelstuermer bietet in Form einer Batch die vollständige Lösung des Problems der Erstellung einer individuellen Windowshilfe mit allen Standardbefehlen von Windows 7.

Hier der Text für die Batch und Bedienungsanleitung - für viele endet diese Abhandlung, danach wird die Batch danach erklärt:

Zur Erstellung einer Batch (*.bat) brauchen Sie nur bordeigene Mittel (Texteditor)

1. Als Vorraussetzung müssen Sie sich bekannte Dateiendungen anzeigen lassen: beliebigen Ordner öffnen: Organisieren - Layout - Menüleiste auswählen. In der Menüleiste: Extras - Ordneroptionen - Reiterkarte Ansicht: Dort Häkchen entfernen bei: Erweiterungen bei bekannten Dateitypen ausblenden.

2. Nun auf dem Desktop oder in einem Ordner mit rechter Maustaste auf freie Fläche drücken und neu - Textdokument auswählen.

3. Neues Textdokment öffnen (linker Doppelmausklick) und folgenden Code durch kopieren über die Zwischenablage einfügen:

md %systemdrive%\probe
cd %systemdrive%\probe
chcp 28591 > NUL
help >hilfe.log
chcp 28591 > NUL
FOR /F "tokens=1" %%A IN (hilfe.log) DO help %%A >%%A.txt
cd c:\probe
dir probe
del 90 ?ndert.txt
del 87 an..txt
del 91 anderen.txt
del 88 auf..txt
del 96 Bedingungen..txt
del 91 beendet.txt
del 90 Befehl.txt
del 91 Dateien.txt
del 95 Dateiensatz.txt
del 96 Datentr?gers.txt
del 87 den.txt
del 91 diesen..txt
del 97 Eigenschaften.txt
del 87 ein.txt
del 89 einem.txt
del 89 einen.txt
del 98 entsprechenden.txt
del 92 erstellt.txt
del 87 es..txt
del 89 fest..txt
del 92 ge?ffnet.txt
del 89 Geben.txt
del 88 her..txt
del 86 in.txt
del 96 konfiguriert.txt
del 89 nicht.txt
del 98 Startdatenbank.txt
del 103 Umgebungs?nderungen.txt
del 87 und.txt
del 96 Unterschiede.txt
del 93 ver?ndert.txt
del 105 Verzeichnisstrukturen.txt
del 91 Weitere.txt
for /f "TOKENS=*" %%a in ('dir *.txt /b') do type "%%a" >> hilfe.log
exit


4. Danach schließen. Abfrage mit Speichern mit ja beantworten.
5. Danach beliebigen Namen vergeben - nur die Endung .bat ist vorgeschrieben Hilfe.bat, genial.bat...
6. Mit rechter Maustaste "als Administrator ausführen".
7. Die Batch arbeitet nun einen Momment und bleibt plötzlich stehen - Sie müssen dann noch einmal die Eingabetaste drücken!

Nebeneffekt: Fortan ist ü,ä, ß ein fester Bestandteil von der cmd...

Im Ordner C:\probe liegen nun sämtliche Standardbefehle als Textdateien und eine Zusammenfassung der Befehle  in der Datei Hilfe.log. Die können Sie ganz normal durch Doppelklick öffnen und auch gerne in eine Textdatei umbenennen - nur so findet man den File besser.

Dieses ist eine sehr, sehr simple Datei - ist zum Erklären besser und dient gleichzeitig auch als Impulsabhandlung zur Überbrückung einiger Probleme bei der Batchprogrammierung. Impulsabhandlung heißt nicht, dass hier einige Wörter geändert werden und das als eigene Idee auf einer anderen Homepages veröffentlicht wird - die Verbreitung ist durchaus erwünscht - aber mit Verweis auf diese Seite - das gehört zur Nettikette!

Die gemeinste Hürde bei der Erstellung einer Hilfedatei ist das Urheberrecht. Die Hilfe ist Bestandteil vonWindows 7, ein Produkt der Microsoft Cooperation. Deshalb darf man Sie auch nicht ohne weiteres ins Internet stellen.
Hingegen ist es erlaubt eine Batch zu schreiben, die nur unter Windows 7 funktioniert - Windows 7 ist Vorraussetzung für diese Batch!

Tippende

Ausführung zur Windowshilfe allgemein

Der Sternenhimmelstuermer errinnert sich wehmütig zurück an XP. Hier hatte der User die Möglichkeit im Pfad c:\windows\help\ Die Hilfedatei ntcmds.chm aufzurufen oder sich dazu eine Verknüpfung anzulegen. Dort war eine Referenz wichtiger Befehle für die cmd (Kommandozeile), die aus heutiger Sicht als überholt betrachtet werden kann.

Dennoch kann sich der nostalgische User neben den Windows-XP-Song auch diese Datei auf Windows 7 kopieren, anschauen und mit dem HTML-Shop (Freeware, englisch, Microsoft) dekompilieren (in html-shop auf w7: file decompile und Pfad angeben ).

Der Helpfile der cmd unter Windows 7 ist hingegen so gut versteckt, dass ihn niemand zu finden scheint. Dabei gibt es nach wie vor die Hilfe, wenn man in die cmd (start - cmd ins Suchfeld - Eingabetaste) z. B. den Befehl help eingibt und mit der Eingabetaste bestätigt, erhält man eine Auflistung der Standardbefehle in einer zweispaltigen Tabelle.

Danach könnte Sie jeden Befehl im Prinzip auflisten und in eine Textdatei umleiten: z. B. für for

cd  %userprofile%\desktop
for /?  >for.txt

Der Nachteil dieser extrem arbeitsintensiven Methode: ä, ü , ö und ß verlieren ihr Formatierung.

Ausführung zur Batch

Die Lösung des Sternenhimmelstuermers wird nun Zeile für Zeile erklärt:

md %systemdrive%\probe

Der Befehl md ist wie mkdir zur Erstellung eines Ordners. Dieser heißt probe und wird im Pfad c:\ erstellt. %systemdrive% ist dabei nur eine Variable für die Systembetriebspartition - fast immer C:\

cd %systemdrive%\probe

cd: Die Kommandozeile wechselt in den neu erstellten Ordner. Das ist zur Bearbeitung der Textdokument einfacher...

help >hilfe.log

help = Der Befehl listet zweispaltig die Hilfe auf - leider wurde (mit Absicht?) diese Systematik durchbrochen, weshalb eine Menge Quatschtexte entstehen...Sie könnten hier mit einem anderen Befehl sauberer arbeiten....aber den Sternenhimmelstuermer interessiert es doch, wer so seine Idee ohne eigene Weiterentwicklung kopiert - daher diese schwammige Lösung.

 >hilfe.log ist die Ausgabe in die Datei hilfe.log. Könnte auch *.bat, *.reg, *.txt oder *.htm oder *.html  sein. Nur lassen sich *.log und *.txt   am einfachsten mit einem Doppelklick mit dem Editor öffnen und bearbeiten...

chcp 28591 > NUL

Diese Zeile gibt das Format für die Ausgabe an: ü,ä,ö... werden ausgedruckt. Bei Heise gibt  es dazu einen wirklich tollen Artikel: Fortan ist ü,ä, ß ein fester Bestandteil von der cmd....

FOR /F "tokens=1" %%A IN (hilfe.log) DO help %%A >%%A.txt

Auf diese Zeile ist der Sternenhimmelstuermer stolz. Der Befehl for ist in der Windowshilfe dokumentiert. Der Normalbürger versteht freilich nichts! Eine Schande - dadurch entstehen im Internet viele Falschaussagen, dass man einzelne Zeilen und Wörter in einem Textdokument nicht bearbeiten kann - stimmt einfach nicht! Wer absolut keine Ahnung hat, der sollte sich in Foren doch bitte zurückhalten!

Mit FOR /F "tokens=1"  wird einfach das erste Wort in einer Zeile angesprochen!

Dieses Wort wird an die Variabel A weitergegeben. %A-Zeichen ist die Anzeige für das System, dass die Variabel A kein Buchstabe ist. %%A muss verwendet werden, da wir uns in einer Batch befinden - da wird das % verdoppelt. So steht es auch in der Hilfe...
%%A IN (hilfe.log) ist die Syntax für die Auslesung des Quelldokumentes hilfe.log, dass Sie zuvor erstellt hatten und fast durchgehend zweispaltig ist.

DO help %%A sagt nur, was mit den Wörtern gemacht werden soll: Nehme also das Wort und verwende den Hilfebefehl für dieses Wort heißt do und help. Do ist forgeschriebene Syntax und Help der Befehl, den Sie für for z. B. von der Syntax her so kennen: for /help. Die cmd akzeptiert durch das do die Ausführung der Hilfe. Das alleine zu wissen, ist schon ziemlich gut... das ganze wieder für das Wort in der Zeile %%A.

>%%A.txt : Der Hilfetext, also das Ergebnis, wird nun durch das >-Zeichen in eine Datei umgeleitet, nämlich >%%A.txt.

Wir erinnern uns: %%A ist nach wie vor nur das erste Wort aus dem hilfe.log. Variablen können beliebig oft in einer Batch verwendet werden. Was liegt also näher, als die Ausgabedatei nach den Standardwert zu benennen?
Nach der Ausführung dieses Befehls hält die Batch leider an. Kein Grund zur Panik. Einmal die Eingabetaste gedrückt und es geht weiter:
Der cd und dir Befehl muss leider sein, um die cmd wieder auf den neuesten Stand zu bringen. Die findet sonst den neuen Ordner und die Dateien nicht...dumme cmd!
Danach müssen noch die Textdateien entfernt werden, die entstanden sind, weil eben nicht durchgehend alles zweispaltig ist - die del - (Lösch-) Befehle entfernen überflüssige Dateien.

Die Nummern der Befehle, z. B. del 90 ?ndert.txt entstehen beim konvertieren. Ja, dass hieß eigentlich ändert.txt, aber wird so konvertiert. Der Textinhalt hat natürlich ü,ä...usw.

Leider bekommen die Text-Dateien unsichtbare Nummmern mit Leerzeichen verpasst. Das gilt für sämtliche Textdateien. Wenn Sie spaßeshalber in die cmd gehen und den Inhalt des Verzeichnisses probe ansehen, so sehen Sie die Nummern mit Dateinamen

cd  %systemdrive%\probe
dir

Ohne die Nummern funktionierte das Löschen per Batch nicht - mit Nummern war das kein Problem - keine Ahnung warum - der Sternenhimmelstuermer nimmt es als gegeben hin-:)

 for /f "TOKENS=*" %%a in ('dir *.txt /b') do type "%%a" >> hilfe.log

Das würde mit Copy natürlich auch gehen, aber der Sternenhimmelstuermer bleibt bei derselben Befehlsstruktur und führt den Befehl type ein...

 for /f "TOKENS=*" Diesmal setzen wir für Token den *, die cmd weiß, dass * irgendwie bearbeitet werden muss, also diesmal alle tokens... in sämtlichen Zeilen des Dokumentes.

%%a in ('dir *.txt /b') Aha, die Variable klein %%a  ist in allen augelisteten Textdokumenten (('dir *.txt /b')) im Ordner der Batch, der durch den Parameter dir /b  von allen Textdokumenten  ausgegeben wird wird. Der Parameter /b ist für die Ausgabe der reinen Auflistung der Dateien ohne Pfad zuständig. *.txt  ist also wieder der Inhalt der Tokens... eben der gesamte * (Also nicht etwa groß A, wie Sie in der ersten Schleife verwendet wurde und immer noch gültig ist, aber leider mit den ganzen Quarkdateien, die zuvor gelöscht wurden!!!).

do type ist für die Übernahme des Inhaltes zuständig - mit Zwischenzeilen. >> hilfe.log Ergänzt unsere Datei Hilfe.log  >> doppelt ,weil ansonsten sämtliche Inhalte überschrieben werden. Deshalb wurde die Datei auch hilfe.log genannt. Sonst würde sich der Inhalt in sich selbst kopieren, da dieses auch eine *.txt wäre. Umgekehrt ist das natürlich auch möglich. Hilfe.txt und die anderen Dateien als *. log - Geschmackssache! Nur müssten Sie dann die Änderung im Kontext bei allen Befehlen durchführen - ist nicht viel Arbeit, machen Sie das ruhig zur Probe, gähn!  

Exit schließt das Fenster der CMD und ein schöneres Ende für diese Abhandlung kann man wahrlich nicht finden!




Impressum
Datenschutz