Tips zu WinNT und Win95/98

Intensivere Benutzung der DOS16-bsh unter Windows NT 4.0, in der DOS-Box mit cmd.exe und command.com,
haben gezeigt, daß dort das originale DOS (z.B. MS-DOS6.22) offenbar nicht exakt nachgebildet wird!

Die Laufwerk-Nummer wird in allen Fällen außer '\' als -1 mitgeteilt, die Geräte CON, NUL, usw.,
die unter originalem DOS als Character-Device gemeldet werden, sind unter NT nicht (immer) existent.
Da die System-Funktion stat() intensiv bei Sicherheitskontrollen benutzt wird, haben diese kleinen
Unterschiedlichkeiten zu vielen Fehlermeldungen geführt, z.B. interne Kommandos move und copy.

Seit 25.07.1999 gibt es eine Version, bei der diese Probleme umschifft wurden, ohne neue Versionsnummer.

Es gibt noch weitere kleine Aufmerksamkeitserfordernisse:

#  cmd     /c "DIR /?" ¦ more            geht nicht
#  command /c "DIR /?" ¦ more            geht
#  cmd     /c "DIR /?  ¦ more"           geht
#  cmd     /c "DIR /?" > liste           geht

Bei den ersten beiden macht die bsh die  ¦-Pipe. 
Es gibt keinerlei Fehlermeldung von den System-Funktionen und sogar die temporäre bsh-Datei
wird mit den Umlenkdaten gefüllt - trotzdem gibt es keine Ausgabe.
Offenbar wird die Rückstellung des File-Pointers auf den Anfang der Umlenkdaten ignoriert.
In der Doku wird aber darauf hingewiesen, daß man für DOS16.exe command.com nehmen soll.

Ich habe nicht selten gehört, daß in den DOS-Boxen von Win95/98/NT
DOS16-Programme -auf mysteriöse Weise- nicht richtig laufen.
Diese Details, die ich festgestellt habe, passen hervorragend zu diesen Aussagen.
Unter Unix im DOS-Emulator klappt's besser.


WinNT hat ebenfalls einen ansi.sys im Verzeichnis  C:\WINNT\system32\ .
Dort sind auch  Config.nt  und  Autoexec.nt .
In  Config.nt  braucht man in der Regel nur die Zeile mit  ...himem.sys  zu kopieren
und dann auf den Namen  ansi.sys  zu ändern.
Dadurch kann der Kommandozeilen-Editor der bsh benutzt werden.
Dort sollte auch FILES=40 oder höher gesetzt werden.

Den Pfad kann man folgendermaßen erweitern:  path %path%;d:\bin;d:\usr\bin

Innerhalb der bsh zeigt das Kommando env: COMSPEC=...\COMMAND.COM
Das kann geändert werden:

#  COMSPEC=...\CMD.EXE
#  export COMSPEC

Danach wird z.B. bei

#  DIR

cmd.exe benutzt, der NT-Interpreter, der mit seinen Kommandos ja lange Dateinamen
unterstützt.
Auf diese Weise kann die DOS16-bsh indirekt mit langen Namen umgehen (z.B. grep, expr, ...).

Unter Win95/98 kann wohl ähnlich vorgegangen werden.

Eine bsh32.exe und eine Linux-bsh wird es vielleicht auch bald geben.
Die jetzige bsh ist aber am universellsten, da sie in absolut jeder DOS-Umgebung läuft,
z.B. in allen DOS-Emulatoren unter Unix und in allen Win-DOS-Boxen sowieso.
 


Zur Hauptseite