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 wute, 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 "auenherum" zu gestal- ten. Es finden sich kurze Erklrungen bei den wichtigsten und noch nicht besprochenen Funktionen. ***************************************************************** @ECHO OFF ;Ausschalten der ;Befehlsanzeige CLS ;Bildschirm lschen 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 Gre 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 schlielich lauten: TT [Verzeichnis] "[Verzeichnis]", da optional ist, IST der 1. Parameter. Im Pro- gramm selbst wird "[Verzeichnis]" mit "%1" belegt. Demnach wre der Programmname IMMER STANDARDMIG "%0". Im internen Ablauf hiee das Ganze also IF [Verzeichnis].==. GOTO END wobei man fr Verzeichnis die bergabe einsetzen mu. Lautet der Aufruf also TT DOS hiee 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 wre 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 hlt 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 nmlich 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 Gre der Zahlen nach, die von FIND kommen. So kommt die letzte und auch grte Zahl, die alles aufsummiert, zum Schlu. 9: Dies ist ein Umleitungszeichen. Die Ausgabe wird also nicht, wie es normal wre, 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 nchste Mal gibt's was mehr ber die internen Variablen und deren Verwaltung, sowie einigen Abbruchbedingungen mehr.