Ein hilfreiches Batch-Utility ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Folgt mir, oh Leser in die Tiefen (ha,ha) der Batch-Programmie- rung! Wer hat das Problem nicht auch schon mal gehabt, daá er nicht wuáte, wieviel Speicherplatz ein Verzeichnis samt seiner Unterverzeichnisse einnimmt ? Um das zu erfahren, werden wir uns eines Batch-Progs bedienen. Es befindet sich im Verzeichnis \SOURCES unter dem Namen "TT.BAT" fr TypeTree. Im Grunde be- steht es nur aus einer Befehlszeile, aber wer gern programmiert, weiá, wie sehr es Spaá macht, auch das "auáenherum" zu gestal- ten. Es finden sich kurze Erkl„rungen bei den wichtigsten und noch nicht besprochenen Funktionen. ***************************************************************** @ECHO OFF ;Ausschalten der ;Befehlsanzeige CLS ;Bildschirm l”schen IF %1.==. GOTO END ;siehe weiter unten :HELP ;Sprungmarke ECHO TypeTree V1.0 by JR ;Textausgabe mit ECHO ECHO. ;Leerzeile ECHO. ECHO TypeTree zeigt die Gr”áe ECHO eines Verzeichnisses an. ECHO Auch Unterverzeichnisse ECHO werden mitgerechnet ! ECHO. ECHO Taste... PAUSE > NUL ;Auf Tastendruck warten, ;Hinweismeldung nach ;"nirgendwohin" leiten :START CLS ECHO. ECHO. ECHO. DIR %1 /S | FIND "Datei(en)" | SORT > C:\DAT ;siehe wei- ;ter unten TYPE C:\DAT | MORE ECHO. ECHO ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ECHO. PAUSE DEL C:\DAT :END CLS ECHO. ***************************************************************** Es gibt eine neue Anweisung: IF %1.==. GOTO END Sie bewirkt, daá wenn keine Parameterbergabe stattgefunden hat, die Stapelverarbeitung sofort zur Sprungmarke ":END" spring, denn der Aufruf von TypeTree muá schlieálich lauten: TT [Verzeichnis] "[Verzeichnis]", daá optional ist, IST der 1. Parameter. Im Pro- gramm selbst wird "[Verzeichnis]" mit "%1" belegt. Demnach w„re der Programmname IMMER STANDARDMŽáIG "%0". Im internen Ablauf hieáe das Ganze also IF [Verzeichnis].==. GOTO END wobei man fr Verzeichnis die šbergabe einsetzen muá. Lautet der Aufruf also TT DOS hieáe die Abbruchberprfung IF DOS.==. GOTO END Da dies NICHT der Fall ist, wird nicht zur :END-Marke gesprungen. Doch warum das ganze Theater mit "." und den zwei "=" ? Nun, eine Stapelverarbeitung kann ein einfaches Leerzeichen (Space) nicht verarbeiten, genauso, wie es bei ECHO der Fall war. Deshalb muá man das Leerzeichen also ersetzen. Wenn keine 1. Parameterber- gabe stattfindet, lautet die šberprfung IF .==. GOTO END Sie w„re wahr und man wrde direkt ans Ende gelangen. Man muá nicht unbedingt einen Punkt benutzen, man kann eine beliebige Zeichenkette verwenden: IF DOShallo==hallo GOTO END bzw. IF hallo==hallo GOTO END Nur mit dem "." geht es am einfachsten. Die zwei "=" dienen zur ABSOLUTEN šberprfung der Bedingung, nach dem Motto "Doppelt ge- moppelt h„lt besser". Man muá sich damit abfinden. Jetzt zur eigentlichen Befehlszeile: Man macht sich dort einfach die normalen DOS-Befehle zu Nutze und verkettet diese mit dem sog. "Pipe-Symbol" ( | ). DIR %1 /S | FIND "Datei(en)" | SORT > C:\DAT ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 1: Aufruf des Befehls DIR mit den Parametern %1 und /S 2: %1 ist ein Parameter, fr den ja das Verzeichnis verwendet, also eingesetzt wird, das bei TT [Verzeichnis] mit angege- ben wird. 3: /S ist ein spezieller 2.Parameter fr den Befehl DIR. Er be- wirkt, daá auch Unterverzeichnisse des angegeben Verzeich- nisses mit aufgelistet werden. 4: Dies ist das Pipe-Symbol. Die Ausgabe von DIR wird mit FIND verkettet. Die Ausgabe von DIR wird also mit FIND bearbeitet. 5: Dies ist der Befehl FIND. Er sucht aus der Ausgabe von DIR die Zeilen heraus, die die Zeichenkette "Datei(en)" enthal- ten. In diesen Zeilen steht n„mlich auch immer der Platzver- brauch der Unterverzeichnisses. 6: Die Zeichenkette, nach der FIND suchen soll. 7: Wieder ein Pipe-Symbol. Die Ausgabe von FIND wird an SORT weitergeleitet, verkettet. Es findet also nach und nach eine Filterung statt. 8: Mit SORT wird die Ausgabe sortiert, und zwar der Gr”áe der Zahlen nach, die von FIND kommen. So kommt die letzte und auch gr”áte Zahl, die alles aufsummiert, zum Schluá. 9: Dies ist ein Umleitungszeichen. Die Ausgabe wird also nicht, wie es normal w„re, auf dem Bildschirm ausgegeben, sondern in die Datei "C:\DAT" umgeleitet. Diese Datei kann man nach- her mit TYPE [Dateiname] anzeigen. 10:Dies ist der Dateiname, der besagt, wohin die Ausgabe von SORT geleitet werden soll. So, das wars. Wenn es noch Fragen gibt, schaut einfach in die Hilfe von DOS oder fragt mich. Eric der Schreckliche PS: Das n„chste Mal gibt's was mehr ber die internen Variablen und deren Verwaltung, sowie einigen Abbruchbedingungen mehr.