Batches
Michael Heydekamp
my-news at freexp.de
Don Okt 7 18:46:00 CEST 2004
Jörg Tewes <jogi1964 at gmxpro.net> wrote on 06.10.04:
> Dienstag, 05.10.04 Michael Heydekamp schrub...
[...]
>> Die Aussage war also nicht, daß ich mir nicht habe träumen lassen,
>> *daß* es Fallen gibt, sondern ich habe mir nicht träumen lassen
>> *welche* Fallen es gibt. Daß sowas Simples wie "echo 1>test.txt"
>> nicht mehr funktioniert, war jedenfalls für mich erstmal neu und
>> überraschend.
> Aber wieso war es überraschend?
Weil simpelste Grundbefehle unter bestimmten Umständen nicht mehr
funktionieren. Man kommt einfach nicht auf die Idee, daß es mit "echo"
ein Problem geben könnte.
Wenn frühere Anomalitäten (wie der gern genutzte Schrägstrich in der
Klammer einer for-in-do-Schleife), die man sich für Hacks zunutze
gemacht hat, nicht mehr gehen, ist das was anderes. Kann man auch als
Bugfix ansehen.
> Das ein command.com überhaupt "mitgeliefert" wird ist nur der
> Kompatibilität geschuldet.
Eben -- aber die ist nicht in ausreichendem Maße gegeben. Schon daß
überhaupt Unterschiede zwischen COMMAND.COM und CMD.EXE unter
*demselben* Betriebssystem bestehen, ist doch ein schlechter Witz.
>>> In der DOS Emulation kennt auch Linux DOS Batches.
>> Hüülfääää....
>> Du hattest doch IIRC von Linux-Scripten gesprochen, von denen
>> keiner auf die Idee käme, daß sie unter DOS (oder Windows?) laufen
>> könnten, richtig? Also reden wir von perl u.ä., richtig?
> Nein, Perl ist ne eigene "Sprache" ich rede von sowas
> if test -n "$1"; then
> type="$1"
> else
> type="fast"
> fi
> time cdrecord \
> -v \
> speed=99 \
> dev=0,5,0 \
> blank=$type \
> -force
Ja toll, aber das ist doch keine Batch. Natürlich läuft das unter
Windows (COMMAND, CMD) nicht.
Ich rede von Batches, die haben unter DOS und Windows nicht nur den
Namen gemeinsam, sondern sie nutzen prinzipiell dieselbe Syntax, kennen
dieselben Befehle und werden laut offizieller Dokumentation (aka Hilfe)
von Windows XP unterstützt -- Linux-Scripte hingegen nicht.
Wenn Du diesen Unterschied nicht siehst und das obige Linux-Script als
Begründung dafür heranziehen willst, daß es genauso selbstverständlich
sei, daß eine unter Win9x geschriebene und problemlos laufende Batch
unter WinXP nicht mehr läuft und daß ein Linux-Script unter Windows
nicht läuft, dann fällt mir dazu nix mehr ein, außer daß eine Diskussion
wohl sinnlos ist.
> Naja ich war davon ausgegangen das du nur bemängelst das sie nicht
> ganz das machen was du möchtest aber im Prinzip schon funktionieren.
Wenn es nach Dir ginge, ist ja nicht mal das der Fall. Und was nützt
mir das Prinzip, wenn genau dieser eine nicht funktionierende Befehl --
für den mit Bordmitteln keine Alternative zur Verfügung steht, daran muß
man nochmal ganz deutlich erinnern -- den gesamten Batchablauf
sabotiert.
> Endeffekt komts natürlich auf dasgleiche raus, obwohl ich nicht weiß
> was der nicht funktioneirende Echo Befehl hier für eine Wirkung hat,
Eine fatale.
> aber im Prinzip funktioniert die Batchdatei ja.
Nope, sie funktioniert(e) genau dadurch überhaupt nicht mehr.
>> Nope. Schon da gibt's Unterschiede, auch in der Batchverarbeitung.
>> Was es nicht besser macht.
> Schwerwiegende Unterschiede?
Wenn das Wechseln eines Verzeichnisses mit "CD" mitunter nicht bzw.
anders als unter DOS funktioniert und die nachfolgenden Befehle in einem
völlig falschen Verzeichnis ausgeführt werden, dann kann das je nach Art
der nachfolgenden Befehle schwerwiegend sein, ja klar.
>> Es ist technisch durchaus möglich, eine DOS-Emulation zu bauen, die
>> wie bisher "echo 1>test.txt" kann. Selbst für Microsoft.
> Ja aber eben nicht gewollt.
Und ich darf der Auffassung sein (und diese auch äußern), daß mir das
nicht paßt? Danke.
> Nehme ich mal an, vielleicht haben sie es ja auch einfach nur
> vergessen.
Das würde es keineswegs besser machen.
Michael
Mehr Informationen über die Support-List Mailingliste