Befehlszeilenlaenge unter WINNT

Andre Buesen buesen at rlb.de
Fr Apr 23 12:40:13 CEST 1999


Tach Zusammen,

uh, jetzt wird es schwierig, da ich gern auf vieles Antworten würde.
Also der Reihe nach.

Zunächst die Befehlszeile. Sie darf in der Tat beliebig lang sein, wenn
32bit Anwendungen aufgerufen werden. Trifft also nicht auf
Allegroprogramme zu. Leider werden Zeilen >125 (128?) Zeichen nicht
einfach nur nicht ausgeführt, das wäre zu schön. Es können furchtbare
Effekte auftreten! So liefen bei mir srch und index mit Aufrufzeilen um
die 135 Zeichen durch und beide produzierten falsche Ergebnisse! 

Das hatte ich schon einmal an dieser Stelle berichtet, war damals aber
der Einzige mit diesem Problem. Ein Vorschlag von mir waren damals
"Parameterdateien", also Dateien, die ich dem Programme angebe, woraus
es sich dann die Informationen holt, die normalerweise in der
Aufrufzeile stehen. Inzwischen habe ich herausgefunden, woran es liegt.

Es liegt an dem Aufrufmechanismus für 16bit Programme. NT legt die
Parameter in einer Art Umgebung ab und startet dann das aufgerufene
Programm in einer virtuellen DOS-Maschine. Irgentwo tritt die alte
DOS-Beschränkung in Kraft. Die Programme bekommen scheinbar verstümmelte
Parameter. Es ist _nicht_ richtig, dass einfach die letzten Parameter
abgeschnitten werden (unter NT). Win 98 und erst recht die Nachfolger
werden ähnliche Probleme haben. Die 16bit-Welt stirbt langsam.

Eine sehr schöne Lösung wären 32bit-Ausführungen der Allegroprogramme,
dann gibts kein Problem mehr mit der Länge ;-) 

------

Move scheitert nicht wenn das Ziel existiert. Da vermute ich Probleme
mit Schreibschutz oder Zugriffsrechten der Datei. Move klappt hier
prima.

------

Datei- oder Verzeichnisexistens kann man mit 'if exist d:\blabla\nul:'
prüfen. Der Doppelpunkt macht's. Um Netzlaufwerke auf Existenz zu
prüfen, benutze ich allerdings meistens ID-Dateien. Damit erfahre ich,
ob das Laufwerk auch tatsächlich mit der richtigen Stelle verbunden
ist.  Das kann der User leider selber so leicht ändern. Beispiel: 'if
exist s:\allegdbs.id ...' heisst, "liegen auf s: wirklich
Allegrodatenbanken?" 

------

deltree --> "rd -s [-q]"  (Siehe auch "rd /?")

------

Handbuch online: 'HELP |more'

------

So, ich hoffe ein paar Leuten geholfen zu haben. Schönes Wochendene viel
viele Grüsse von Rhein und Mosel,

	Andre Büsen
-- 
Andre J. Büsen                     Fon:   +49 261 91500-28            
Rheinische Landesbibliothek        Fax:   +49 261 37635
Hohenfelder Strasse 16             eMail: buesen at rlb.de
56068 Koblenz                      http://www.rlb.de/




Mehr Informationen über die Mailingliste Allegro