DOS-Corner Nikolaus Heusler PC go 06.21.9402.18.94 Objekt: PC go! Ausgabe: diverse Rubrik: DOS-Corner Redakteur: Autor: Nicki Heusler, XXX/XXXXXX Datum: 21.06.94 Thema: Tips und Tricks zu DOS, Batch usw. ************************************************* *** BITTE GGF. AUF MEHRERE AUSGABEN AUFTEILEN *** ************************************************* ================================================================================ FILES und BUFFERS In der CONFIG.SYS von MS-DOS befinden sich in der Regel die Einträge FILES= und BUFFERS=. Der Wert nach FILES bestimmt, wie viele Dateien gleichzeitig offen sein können. BUFFERS gibt die Anzahl der Pufferspeicher an, die DOS beim Laden und Speichern verwendet. Die optimale Einstellung dieser Werte hat schon bei so manchem Anwender zu Nervenzusammenbrüchen geführt. Eine klare Antwort, welche Werte optimal sind, gibt es nicht. Diese Angaben hängen auch erheblich von Ihrer Rechner-Konfiguration ab und von der Arbeitsweise: Welche Programme und Anwendungen laufen parallel. Allerdings gelten einige Richtwerte: FILES sollte einen Wert über 50 besitzen, bei BUFFERS genügen etwa 10, falls Sie ein Cache-Programm wie beispielsweise Smartdrive einsetzen. Andernfalls sollte für BUFFERS ein Wert um 30 gesetzt werden. Bei Windows macht sich vor allem die FILES-Einstellung bemerkbar. Wenn Sie viele Truetype-Schriften verwenden, sollte die Anzahl eher üppig bemessen sein. Probleme mit Disketten Sehr wichtige Daten sind auf Ihrer Diskette gespeichert. Das darf natürlich nicht ungestraft bleiben: Gerade jetzt läßt sich die Floppy nicht mehr lesen. Möglicherweise ist Smartdrive der Verursacher für diese Probleme: Dann nämlich, wenn das Cache-Hilfsprogramm Smartdrive zur Pufferung der Diskettenlaufwerke angewiesen wurde. "Pufferung" klingt nützlich, ist es aber nicht immer, beispielsweise bei Disketten nicht. Während ein Lese-Cache lediglich einmal von dem Laufwerk gelesene Daten im Speicher puffert, um sie ggf. erneut und dann wesentlich schneller zur Verfügung stellen zu können, hält ein Schreib-Cache die auf einen Datenträger (Diskette, Festplatte) zu schreibenden Daten noch einige Sekunden zurück, bis der Prozessor für die Speicherung Kapazitäten frei hat. Der Schreibvorgang erfolgt für den Anwender augenscheinlich schneller. Das kann aber beim Schreiben auf Disketten kritisch werden: Es besteht die Gefahr, daß der Anwender die Diskette aus dem Laufwerk zieht, noch bevor der Cache den verzögerten Schreibvorgang beendet hat. Datenverlust wäre die Folge. Abhilfe schafft eine Änderung in der AUTOEXEC.BAT-Steuerdatei: Stellen Sie den Smartdrive-Parametern die Zeichenfolge "A- B-" voran. Damit kümmert sich Smartdrive nicht mehr um Ihre Disketten und eine Störquelle ist versiegt. Der Aufruf sähe also beispielsweise folgendermaßen aus: C:\WINDOWS\SMARTDRV.EXE A- B- Dennoch können Sie - wenn Sie sich der damit verbundenen Risiken im Klaren sind - den Schreibcache auch die Floppy-Laufwerke aktivieren. Dann schreiben Sie hinter den betreffenden Laufwerksbuchstaben (A und/oder B) ein Pluszeichen. Smartdrive gibt auf Wunsch auch Auskunft über die derzeit durchgeführte "Cachierung". Der Befehl SMARTDRV reicht schon. In der ersten Spalte der zu sehenden Tabelle sind alle Laufwerke Ihres Computers aufgelistet, dahinter steht, ob der Cache für dieses Drive nur beim Lesen (grundsätzlich gefahrlos möglich) oder auch beim Schreiben aktiv ist. Für Festplatten sollten beide Aktionen mit "Ja" markiert sein, bei Diskettenlaufwerken steht im Allgemeinen nur beim Lesen das "Ja". Die letzte Spalte ist in diesem Zusammenhang ohne Bedeutung. Tips zu Smartdrive Bei der Installation wird automatisch das Festplatten-Cache-Programm Smartdrive in Ihr System eingebunden. Festplattenzugriffe werden dadurch beschleunigt, indem der PC die zu schreibenden und zu lesenden Daten im Arbeitsspeicher des Computers zwischenspeichert. Essentiell wichtig für die optimale Funktion dieses Hilfsprogramms ist die Speichermenge, die ihm für diese Pufferung zur Verfügung gestellt wird. Ob Smartdrive auf Ihrem System optimal arbeitet, können Sie ganz leicht selbst feststellen. Starten Sie den PC neu. Sie sollten nun ein wenig arbeiten, verschiedene Programme starten und wieder beenden, Dateien öffnen und schließen, und so weiter. Dadurch bekommt der Cache einige Arbeit. Jetzt machen wir uns daran, die Leistung auszuwerten. Geben Sie den Befehl SMARTDRV /S ein. Das Programm zeigt in Form einer Statistik jetzt einige wichtige Kenndaten, darunter etwa in der Mitte auch die Informationen xxx mal konnten die Daten dem Cache entnommen werden und yyy mal mußten die Daten vom Datenträger gelesen werden Die Zahlen xxx (Größenordnung typisch 50000) und yyy (typisch 3000) sind für die Auswertung wichtig. Addieren Sie die beiden Zahlen und teilen Sie das Ergebnis durch die Zahl yyy. Liegt das Endergebnis über 8,5, arbeitet Ihr Cache zufriedenstellend. Bei Werten über 9,5 dürfen Sie sich selbst auf die Schulter klopfen: Ausgezeichnet. Bleibt dieser errechnete Wert jedoch auch nach mehreren Versuchen hartnäckig unter 8, stellen Sie Smartdrive besser mehr Speicher zur Verfügung. Als Anhaltspunkt dient folgende Tabelle, der Sie entnehmen können, wieviel RAM Sie Smartdrive zuordnen sollten, je nachdem, mit welchem Gesamt-RAM-Arbeitsspeicher Ihr PC ausgerüstet ist: Arbeitsspeicher DOS-Cache Windows-Cache bis 2 MByte 1024 KByte 512 KByte 2 bis 4 MByte 2048 KByte 1024 KByte über 4 MByte 2048 KByte 2048 KByte Um Smartdrive entsprechend dieser Tabelle anzupassen, müßte ein Eintrag in der AUTOEXEC.BAT verändert werden. Wenn Sie diese Datei mit einem Texteditor öffnen, finden Sie darin eine Zeile wie folgt: C:\WINDOWS\SMARTDRV.EXE Sollten dahinter bereits zwei Zahlen stehen, so handelt es sich dabei um die Definition des für Smartdrive reservierten Puffers. Ändern Sie diese Angaben entsprechend unserer Tabelle, oder fügen Sie sie ggf. hinzu (durch je ein Leerzeichen getrennt). Die erste Zahl gibt den Umfang des DOS-Cache in KByte an, die zweite Zahl bestimmt den bei Windows zu verwendenden Cache. Wollen Sie also beispielsweise als Besitzer eines 3 MByte PC unserer Empfehlung folgend 2048 KByte DOS-Cache und 1024 KByte Windows-Cache einrichten, ändern Sie die AUTOEXEC.BAT-Zeile wie folgt: C:\WINDOWS\SMARTDRV.EXE 2048 1024 Nach der Änderung der Datei und dem Speichern starten Sie Ihren Rechner neu, damit die neuen Vorgaben wirksam werden. MOVE-Anweisung selbstgebaut DOS bietet erst ab Version 6.0 eine Möglichkeit, Dateien von einem Verzeichnis in ein anderes zu verschieben (MOVE). Für Benutzer älterer DOS-Versionen bietet die folgende Stapeldatei MOVE.BAT eine gewisse Erleichterung. ECHO OFF CLS ECHO. ECHO MOVE-FILE-Utility ECHO. IF X==%1X GOTO NOPAR IF X==%2% GOTO NOPAR IF NOT EXIST %1 GOTO FEHLT1 IF NOT EXIST %2\*.* GOTO FEHLT2 COPY %1 %2 IF EXIST %2\%1 DEL %1 GOTO ENDE :NOPAR ECHO Syntax: MOVE Dateiname Verzeichnis GOTO ENDE :FEHLT1 ECHO Datei %1 nicht gefunden GOTO ENDE :FEHLT2 ECHO Verzeichnis %2 nicht gefunden :ENDE ECHO. Das Programm prüft zunächst, ob die beiden Parameter vorhanden sind. Als erster Parameter muß der komplette Name der zu verschiebenden Datei angegeben werden. Dabei sind auch die Joker * und ? zulässig, um Gruppen von Files zu bewegen. Der zweite Parameter gibt den Namen des Zielverzeichnisses an. Beispiel: MOVE AUFSATZ.TXT C:\TEXTE Anschließend erfolgt eine Prüfung, ob sowohl die Quelldatei wie auch das Zielverzeichnis existieren. Falls nicht, erscheint eine entsprechende Fehlermeldung, und die Bearbeitung wird abgebrochen. Der PC kopiert nun die Datei in das gewünschte Zielverzeichnis (Kommando COPY) und löscht, falls der Kopiervorgang erfolgreich verlief, das Original. Am besten speichern Sie dieses Hilfsprogramm MOVE.BAT im \DOS-Verzeichnis. Falls ein Pfad dorthin gelegt wurde, läßt sich der Verschiebe-Befehl von überall her aufrufen. Rätselhafter Wechsel Problem: Die Tastaturbelegung wechselt plötzlich unmotiviert von Deutsch auf Amerikanisch. Ursache: Wahrscheinlich haben Sie aus Versehen die Tastenkombination gedrückt. Diese schaltet ohne Vorwarnung auf die amerikanische Belegung um. Dies kann aber unter Umständen auch ganz nützlich sein, falls Sie zum Programmieren beispielsweise geschweifte oder eckige Klammern benötigen (liegen auf der Ü- und Stern-Taste). Auch in vielen Textverarbeitungs-Programmen wirkt diese Kombination (Beispiel Word unter DOS). Wenn Sie eingeben, schaltet sich wie mit KEYB plus Länderkennung in der CONFIG.SYS eingestellte Belegung, im Normalfall also Deutsch, wieder ein. Diese Tastenkombinationen wirken auf den meisten MS-DOS-Rechnern. Leere Files kopieren Haben Sie schon einmal probiert, mit COPY Dateien der Größe Null zu kopieren? Vor dieses Problem sieht man sich bei der einen oder anderen Anwendung gestellt. Der MS-DOS-Befehl COPY versagt hier jedoch. Zwar werden eventuell vorhandene Dateien gleichen Namens im Zielverzeichnis gelöscht, die Kopierung unterbleibt jedoch in jedem Fall. Der Kopiervorgang funktioniert wie erwartet, wenn Sie statt COPY den XCOPY-Befehl einsetzen. Muß das Kopieren nicht aus einer Batchdatei gestartet werden, läßt sich zum Beispiel auch die Copy-Funktion des Norton-Commanders einsetzen. Drucker-Reset Kennen Sie das Problem? Man hat mit einem Anwendungsprogramm, beispielsweise MS-Word für DOS, ein Dokument gedruckt. Dabei wurde vom Programm etwa eine besondere Formatierung des Ausdrucks eingestellt. Nach Beendigung des Programms muß der Drucker jetzt von einer anderen Anwendung bedient werden, die vorher eingestellte Formatierung (Ränder, besondere Schriften und so weiter) bleibt jedoch erhalten, weil die Programmierer wie im Fall von Word vergessen haben, den Drucker nach Beendigung des Druckens wieder in den Ausgangszustand umzuschalten und Einstellungen zu löschen. Möchten Sie nicht jedes Mal den Drucker aus- und wieder einschalten, behelfen Sie sich doch mit einer einzeiligen Batchdatei, die alle Einstellungen am Drucker zurücksetzt. Sie müssen nur die Zeichen 27, 69 (entspricht ESC E) an den Drucker schicken (gültig beispielsweise für Laserjet III). Die Batchdatei läßt sich beispielsweise unter Word erzeugen. Rufen Sie den Editor auf und geben ein: echo E > prn Hierbei bedeutet , daß Sie die ALT-Taste gedrückt halten und dann auf der numerischen Zusatztastatur die Ziffern 2 und 7 eingeben sollen. Wenn Sie jetzt wieder loslassen, erscheint ein Pfeil nach links am Bildschirm, der später vom Drucker als Escape-Sequenz interpretiert wird. Speichern Sie diesen kleinen Text zum Beispiel unter dem Namen RESPRINT.BAT auf der Festplatte, allerdings nicht im Word-Format, sondern "nur Text". Falls die Batchdatei mit dem Editor des Norton-Commanders erzeugt werden soll, erhalten Sie nach der Eingabe von keinen Pfeil nach links, sondern die Logout-Meldung des Editors. Um zu verhindern, daß das Ascii-Zeichen 27 ausgeführt wird, müssen Sie erst voranstellen und dann eingeben. Dies ergibt den gewünschten Pfeil am Monitor. Die eleganteste Lösung ist im Falle von Word die Änderung des Druckertreibers. Dazu benötigen Sie das Programm MAKEPRD.EXE, das bei Microsoft in Unterschleißheim kostenlos erhältlich ist. Es wandelt Druckertreiber in editierbare Ascii-Dateien um und umgekehrt. Suchen Sie in dem umgewandelten Druckertreiber nach der Zeile byte:4 mod:0 "^[&10o3e1H" Ändern Sie diese Zeile in folgende Zeile um: byte:4 mod:0 "^[&10o3e1H^[(s10v12H" Dann konvertieren Sie den Ascii-Text wieder unter Verwendung von MAKEPRD.EXE in ein von Word lesbares Format. Mit diesem Eingriff in den Druckertreiber wird der Drucker automatisch in den Ausgangszustand zurückgesetzt. Tastaturcodes über 255 Wie allseits bekannt sein dürfte, lassen sich viele Zeichen des Ascii-Codes nicht direkt auf Tastendruck abrufen. Stattdessen muß die ALT-Taste gedrückt gehalten werden. Geben Sie dann die Ascii-Codenummer über den numerischen Ziffernblock ein. Läßt man dann los, erscheint das gewünschte Zeichen. Für das griechische Summenzeichen "Σ" ist etwa zuständig. Doch was passiert, wenn man einen Code über 255 eingibt, zum Beispiel ? Es erscheint ebenfalls das Summenzeichen. Wie ist das zu erklären? Zerlegt man die Zahl 740 in den Binärcode, erhält man 1011100100. Hierbei handelt es sich um eine zehn Bit breite Zahl. Da der Ascii-Code nur 256 Zeichen (Nummern 0 bis 255) enthält, berücksichtigt Ihr PC nur die unteren acht Bit dieser Zahl, hier also 11100100. Rechnet man diese Zahl in den Dezimalcode zurück, erhält man genau 228, den Code des Summenzeichens. Doch Platz im Umgebungsspeicher Die Fehlermeldung Kein Platz im Umgebungsspeicher weist unter DOS auf einen zu gering bemessenen Environment-Speicher hin. Ab DOS 3.2 gibt es Abhilfe: Man kann mit SHELL=COMMAND.COM /p /e:512 in der CONFIG.SYS den Kommando-Interpreter anweisen, einen Environment-Speicher von in diesem Fall beispielsweise 512 Byte zu reservieren. Diese Zahl kann einen Wert bis 32769 erhalten, dann würden 32 KByte reserviert. Leider ist damit bei einigen Anwendungen das Problem noch nicht gelöst: Wenn man zum Beispiel von der Benutzeroberfläche des POWER-MENU oder des Norton-Commanders aus eine Anweisung mit einer Batchdatei startet, in der mit der SET-Anweisung oder dem Prompt-Befehl Platz im Umgebungsspeicher abgezwackt werden soll, erhält man trotz ausreichend großem Environment-Speicher die Fehlermeldung. Ursache: Diese Programme stellen nur den vor dem Aufruf tatsächlich belegten Environment-Speicher der aufgerufenen Anwendung. Aber auch dafür gibt es ein Gegenmittel: Belegen Sie einfach vor dem Aufruf der Oberfläche (z.B. MENU beim POWER-MENU oder NC beim Norton-Commander) einen ausreichend großen Teil des Umgebungsspeichers mit einer oder mehreren beliebigen Zeichenketten. Wenn Sie nun eine Anwendung aus der Benutzeroberfläche heraus aufrufen, bei der Umgebungsspeicher benötigt wird, geben Sie in der entsprechenden Stapeldatei als erstes den Speicherplatz wieder frei, indem Sie die Variable(n) wieder löschen. Dieser freie Platz steht dann zur Verfügung. Beispiel: Die AUTOEXEC.BAT lädt zum Schluß die Benutzeroberfläche des Power-Menüs (Befehl MENU). Vorher werden die Variablen VAR1 bis VAR3 mittels der SET-Anweisung mit einer Dummy-Zeichenkette belegt. Hier der entsprechende Ausschnitt der AUTOEXEC.BAT: @ECHO OFF [...] REM Environment-Speicher belegen SET VAR1=SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS VAR2=SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS VAR3=SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS MENU Ein Batchprogramm MCLIPPER.BAT, mit der aus dem Power-Menü heraus eine Anwendung aufgerufen wird, bei der Umgebungsspeicher benötigt wird, könnte dann zum Beispiel so aussehen: @ECHO OFF VERIFY OFF REM VAR1 bis VAR3 löschen SET VAR1= SET VAR2= SET VAR3= REM ab hier wird Umgebungsspeicher benötigt PATH C:\CLIPPER;C:\;C:\DOSSYS;C:\TOOLS APPEND C:\CLIPPER;C:\;C:\DOSSYS CD C:\CLIPPER SET LIB=\CLIPPER SET OBJ=\CLIPPER SET CLIPPER=V006;R032 CLS REM Command lädt Command.COM ECHO Um zum Menü zurückzukehren, bitte EXIT eingeben COMMAND SET LIB= SET OBJ= SET CLIPPER= REM Standard-Pfad setzen (Stapeldatei N_PATH.BAT) CALL N_PATH REM die freien Variablen VAR1 bis VAR3 brauchen nicht REM erneut belegt zu werden, einmalige Belegung vor dem REM Aufruf des Menüs genügt VERIFY ON Damit dürften die Probleme mit dem Umgebungsspeicher wirksam behoben sein. Mehr Speicherplatz durch Backup Sensationelle Neuigkeiten hält Microsoft in dem Handbuch zu DOS 6.0 auf Seite 50 für uns bereit: man könne mit einem Backup "sicherstellen, daß genügend Platz auf der Festplatte bereitsteht und bei Festplattenfehlern keine Dateien beschädigt werden", steht da zu lesen. Leider konnten wir bisher die näheren Umstände für diese undokumentierten Backup-Funktionen auch nach hartnäckiger Recherche nicht aufdecken. Wir rufen daher unsere Leser auf: Schreiben Sie uns, wenn Sie herausgefunden haben, wie man per Sicherheitskopie Platz auf der Festplatte sparen kann. Fortschrittliche Techniken in menügesteuerten CONFIG.SYS Es ist bekanntlich möglich, beim Einschalten des PCs ein Menü zu zeigen, in dem der Anwender aus einer Liste von möglichen Konfigurationen die für ihn passende auswählen kann. Zuständig dafür sind besondere Befehle in der Steuerdatei CONFIG.SYS. Die Anwendungen "menu", "menuitem", "menudefault" und "menucolor" sowie "common" sind ja noch recht leicht zu durchschauen. Abgesehen von einer Mindestkonfiguration, die man unter [common] stellen kann und deren Angaben dann automatisch für alle anderen Konfigurationen bindend sind, nimmt auch "include" richtig angewandt unter Umständen viel Schreibarbeit ab. Die Folge [Spezial] include=normal bezieht alle Anweisungen des Blocks [normal] in den Block [Spezial] ein. Achten Sie gerade bei verschachtelten Includes jedoch darauf, daß sich die Ladevorgänge nicht widersprechen oder Treiber doppelt geladen werden. Besonders bei Speichermanagern wie EMM386 führt das zu Fehlfunktionen. Noch ein Tip: Die Rückkehr von einem Untermenü zum Hauptmenü ist ebenfalls nicht dokumentiert. Nehmen Sie einfach die -Taste (Rückschritt). Programmaufruf aus Directories Hier ist eine nützliche Batchdatei CDD.BAT, die es ermöglicht, Programme von einem beliebigen Directory aus zu starten. Nach Programmablauf wird automatisch wieder in das Startverzeichnis zurückgekehrt. CLS @ECHO OFF ECHO Aus Laufwerk X Verzeichnis Y zu Z und wieder zurück ECHO X Y ECHO. ECHO Voraussetzung: Pfadeinstellung berücksichtigt Root- ECHO und Verzeichnis, in dem sich das DEBUG-Tool (meistens ECHO C:\DOS) befindet. Jetziger Batch für Geräte mit ECHO Laufwerk C: ECHO. PAUSE CD > C:\LFW.BAT CD > C:\LDIR.BAT DEBUG C:\LFW.BAT C:NUL DEBUG C:\LDIR.BAT C:NUL REM Hier kann zu beliebigem Verzeichnis gewechselt werden C: REM irgendein Programm ausführen ECHO ON TIME REM Rückkehr in das ursprüngliche Directory @ECHO OFF CALL C:\LFW CALL C:\LDIR DEL C:\LFW.BAT DEL C:\LDIR.BAT ECHO ON Dieses Stapelprogramm erzeugt mit Hilfe von Debug zwei Befehle. Dazu werden zwei weitere Textdateien DAT1 und DAT2 benötigt, die folgenden Inhalt haben: Inhalt von DAT1: rcx 2 w q Inhalt von DAT2: e 100 "cd\" w q Diese beiden Files speichern Sie in dem selben Verzeichnis, in dem sich auch CDD.BAT befindet. Bildschirmraser Einige ältere CGA-Monitore reagieren nicht auf den Schalter /P für die seitenweise Ausgabe von Texten etwa bei DIR/P und rollen einfach ohne Halt durch. Abhilfe schaffen in den meisten Fällen zwei Parameter zum Bildschirmtreiber ANSI.SYS: DEVICE=C:\DOS\ANSI.SYS /R/S /S ist nicht dokumentiert. Undokumentierte Grenze für Memmaker Wenn eine der Steuerdateien CONFIG.SYS, AUTOEXEC.BAT oder SYSTEM.INI mehr als 511 Zeilen aufweist, bricht der Memmaker mit der Fehlermeldung die Bearbeitung ab, das File sei zu lang. Unter normalen Umständen dürfte diese Grenze nicht erreicht werden, bei sehr vertrackten Multi-Konfigurations-Umgebungen sind allerdings solche theoretischen Längen zumindest für die AUTOEXEC.BAT nicht ganz auszuschließen. Maulfaules DELTREE Der radikale Verzeichnisentferner DELTREE hat einige Schwächen, die zu kennen lohnt. Möchten Sie zum Beispiel ein Verzeichnis, in dem sich all Ihre Texte befinden, löschen, so leert DELTREE den kompletten Aktenordner und löscht alles, was darin enthalten ist, auch versteckte Dateien und Systemfiles. Auch der gelöschte Ordner wird anschließend für immer entfernt. Wenden Sie DELTREE allerdings irrtümlich auf ein Verzeichnis an, das gar nicht oder nur im aktuellen Pfad nicht existiert, antwortet das Löschprogramm nicht mit einer Fehlermeldung. Verstehen Sie diese Reaktion also nicht falsch, glauben Sie nicht an den erfolgreichen Abschluß der Aktion, vor allem dann, wenn man mit DELTREE /Y die Bestätigungen abgeschaltet hat. Ein zweiter Schwachpunkt wird in Verbindung mit dem oben beschriebenen Phänomen zum Bug. DELTREE ist wie der Name schon sagt eigentlich zum Löschen von Verzeichnissen gedacht, zum Löschen eines Files dient ja DEL. DELTREE vermag aber nicht zwischen beidem zu unterscheiden, sondern löscht alles, was ihm in den Weg kommt, auch einzelne Dateien. Achten Sie also darauf, beim Löschen des Verzeichnisses BRIEFE nicht das letzte "E" zu vergessen. DELTREE BRIEF löscht nämlich die zufällig ebenfalls in diesem Verzeichnis enthaltene Datei ungefragt. Ganz rationell, aber nicht ungefährlich, ist es, wenn Sie im Hauptverzeichnis der Festplatte den Befehl DELTREE C: eingeben. Dank der Sicherheitsabfrage löscht der Befehl in diesem Fall nicht alle Files, sondern hangelt sich von Unterverzeichnis zu Unterverzeichnis und fragt bei jedem auf Ihrer Platte gespeicherten File, ob es gelöscht werden darf und soll. Der "Yes"-Parameter sollte generell vermieden werden, außer Sie rufen DELTREE kontrolliert aus einem Stapelprogramm auf. Was passiert, wenn Sie im Hauptverzeichnis Ihrer Platte DELTREE *.* /Y eingeben? Richtig - das kommt einer Formatierung der Platte gleich. Alle Files werden gelöscht. Problem mit MOVE Der MOVE-Befehl zum Verschieben von Filets ist zwar relativ sicher, aber eine Situation kann zu Datenverlust führen: Reicht auf dem Ziellaufwerk der zur Verfügung stehende Speicherplatz nicht mehr aus, erscheint die Fehlermeldung "Ziel kann nicht kopiert werden". MOVE ist zwar so intelligent, die Quelldatei bei diesem Vorgang noch nicht zu löschen. Befand sich auf dem Zieldatenträger allerdings schon eine kleinere Datei dieses Namens, wird diese ausradiert. Gar nicht lustig ist eine andere Abart von MOVE. Verwendet man ihn, um ein Verzeichnis umzubenennen, beispielsweise von ALTNAME in NEUNAME MOVE ALTNAME NEUNAME so führt DOS diesen Befehl brav aus. Der Hammer: Wenn sich eine Datei NEUNAME in diesem Verzeichnis befindet, wird sie kommentarlos gelöscht! Einer für viele Sie besitzen einen PC, an dem viele Personen arbeiten. Wer es ist, wird durch eine Login-Prozedur beim Start festgelegt. Aufgabe: Es soll Verzeichnisse geben, die nur einem bestimmten Personenkreis zugänglich sind. Wir zeigen Ihnen im folgenden Tip, wie Sie auch ohne teure Multiuser-Software Verzeichnisse zumindest für weniger geübte Anwender sperren können: Mit illegalen Dateinamen. Unter DOS sind zum Beispiel Leerzeichen im Dateinamen illegal, Namen wie zum Beispiel "DA TEI" sind tabu. Dateinamen mit einem solchen Makel können Sie auch unter DOS mit REN korrigieren: REN DA?TEI DATEI entfernt das Leerzeichen. Verzeichnisnamen mit einem Leerzeichen sind dagegen für DOS tabu: Es gibt eigentlich keine Befehle, um solche Verzeichnisse zu bearbeiten, umzubenennen oder auch nur zu löschen. Eine undokumentierte Eigenart von DELTREE und MOVE beseitigt zwar einerseits diesen Makel, eröffnet aber andererseits auch hübsche Möglichkeiten, mit DOS Inkompatibilitäten zu DOS anzulegen. Die beiden Programme gestatten es nämlich, Leerzeichen in Dateinamen zu verwenden, wenn die Namen in Anführungszeichen stehen: DELTREE "DA TEI" Ohne Gänsefüßchen würde DELTREE wie die meisten Befehle DA und TEI als zwei Parameter verstehen, in dieser Form jedoch wird, falls vorhanden, das Verzeichnis "DA TEI" gelöscht. MOVE arbeitet genauso: Benennen Sie mit MOVE "GE HEIM" GEHEIM das illegal benannte Verzeichnis (oder die Datei) "GE HEIM" in die korrekte Form GEHEIM um. Aber natürlich funktioniert das auch in der anderen Richtung: MOVE DATEI "D D" Damit definiert der MOVE-Befehl einen Datei- oder Verzeichnisnamen, mit dem weder die übrigen DOS-Befehle (außer DELTREE und natürlich MOVE) noch Programme wie Windows etwas anfangen können. Für Insider sicherlich gewinnbringend: Ein typischer Windows-PC, an dem mehrere Personen arbeiten, bemüht DOS nur noch zum Booten. Je nach Benutzer-Login verbiegt MOVE in der AUTOEXEC.BAT einige Pfade beim Start auf die beschriebene Weise, die dann unter Windows nicht mehr zugänglich sind. Sie müssen natürlich sicherstellen, daß alle Pfade nach der Beendigung von Windows wieder korrekt benannt werden, damit man beim nächsten Start keine bösen Überraschungen erlebt. Ganz pikant wird die Situation natürlich, wenn Sie mit MOVE den Zugriff auf sich selbst (nämlich das Verzeichnis \DOS) sperren. DOS ist damit praktisch außer Gefecht. Einzige Rettung in dieser fatalen Situation sind nur noch Dateihilfsprogramme wie der Norton-Commander oder einige fundamentale Programmierkenntnisse. In QBasic würde, vorausgesetzt, Sie haben außerhalb des DOS-Verzeichnisses Zugriff darauf, etwa die Zeile NAME "C:\D O S" as "C:\DOS" den Schaden reparieren. Man sieht schon: Bastlern und Terroristen sind mit diesen Manipulationsmöglichkeiten Tür und Tor geöffnet. Paßwortabfrage mit CHOICE CHOICE.COM ist ein nettes kleines Batch-Tool zur Abfrage von Tastendrücken. Es gibt auch Besseres, aber CHOICE gehört nun mal zum DOS-Lieferumfang. CHOICE gestattet nur ein einziges Zeichen als Eingabe und übergibt auch nicht den Ascii-Wert der Taste, sondern setzt den Errorlevel entsprechend: Nach CHOICE /C:HIJKLMN führt der Antwortbuchstabe H zum Errorlevel 1, N ergibt Errorlevel=7. Beachten Sie bitte, daß bei der Abfrage des Errorlevels eine Größer/Gleich-Anfrage durchgeführt wird. Man muß also immer mit der höchsten Möglichkeit beginnen und sich dann in Richtung ERRORLEVEL=1 vorarbeiten: IF ERRORLEVEL = 7 GOTO SIEBEN IF ERRORLEVEL = 6 GOTO SECHS IF ERRORLEVEL = 5 GOTO FUENF IF ERRORLEVEL = 4 GOTO VIER IF ERRORLEVEL = 3 GOTO DREI IF ERRORLEVEL = 2 GOTO ZWEI IF ERRORLEVEL = 1 GOTO EINS Würde man stattdessen mit der Prüfung ERRORLEVEL=1 beginnen, würde der PC nur noch das Level EINS abarbeiten, unabhängig von der Eingabe. Mit CHOICE läßt sich auch tricksen: CHOICE /C:jƒ /t:j,5 [JN] Während die Bildschirmausgabe die Auswahl J/N suggeriert, wird in Wahrheit das Florin-Sonderzeichen "ƒ" () erwartet. Das grenzt dann an eine versteckte Paßwortabfrage, wobei dem Benutzer allerdings der Abbruch per offensteht. Die Syntax FOR %X IN (N I C K I) DO CHOICE /C:%X /N eröffnet weitere Möglichkeiten. SENTRY abspecken Sicherheit muß sein. UNDELETE/S sammelt in dem Verzeichnis \SENTRY die gelöschten Dateien - für den Notfall. Dieses Verzeichnis darf traditionell bis 20% des gesamten Festplattenspeichers umfassen, bis UNDELETE beginnt, die ältesten Sicherheitskopien für immer zu entsorgen. Dieser Defaultwert ist aber bei allem Verständnis für Sicherheitsbewußtsein doch etwas hoch. Der Wert läßt sich aber ohne weiteres per Hand in der Datei UNDELETE.INI ändern. Dort findet sich der Eintrag SET PERCENTAGE=20 Setzen Sie den Prozentwert auf maximal 10. Bei einer 120 MB-Platte dürfen sich damit immer noch 12 MB im Sentry-Verzeichnis ansammeln, das dürfte bei weitem genügen. Man kann übrigens auch in der UNDELETE.INI vorgeben, welche Dateitypen (Endungen) überhaupt gesichert werden sollen. Standardmäßig steht im Abschnitt "sentry.files" die Voreinstellung *.*, also werden alle gelöschten Files in Sentry gesichert. Nach *.* folgen aber eine Reihe von Masken mit einem Minuszeichen wie *.BAK, die von der Überwachung ausgeschlossen bleiben. Löscht man eine solche Datei mit UNDELETE, erfolgt keine Sicherheitskopie. Ebenso ist es möglich, auf die Negativliste ganz zu verzichten und dafür die Positivliste einzutragen: sentry.files = *.DOC, *.BAT *.DB? Dieses Verfahren ist nicht dokumentiert, allerdings auch recht riskant: Für alle nicht genannten Dateien gibt es dann keine Löschverfolgung. Aber: Die Einträge in der INI-Datei haben so oder so nur dann Bedeutung, wenn der Benutzer mit UNDELETE/S die höchste Löschüberwachungsstufe anfordert. In allen anderen Fällen kommt eine Standardvorgabe ohne Rücksicht auf UNDELETE.INI zur Anwendung. Form-Virus Anti-Virus für Windows erkennt den Form-Virus zwar, sieht sich aber außer Stande, ihn zu beseitigen oder auch nur zu identifizieren. Erfreulich und merkwürdig zugleich: Die DOS-Version MSAV.EXE erkennt und entfernt den Form-Virus. Wer hat an der Uhr gedreht? Vermutlich POWER.EXE. Dieser Treiber, in CONFIG.SYS installiert, spart Benutzern eines Laptops Batterie-Reserven. Nebeneffekt: Das Programm beeinträchtigt die Anzeige der Systemzeit in der DOS-Shell (Statuszeile). Während die Uhr normalerweise im Minutentakt aktualisiert wird, geschieht dies unter POWER.EXE nur noch jede Stunde. Nikolaus M. Heusler