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!