Zitat von
nahpets:
woher stammt das "Wissen", dass *.bat von COMMAND.COM ausgeführt wird?
Eigene Erfahrungen.
Es ist schon so, dass Windows normalerweise dem Kommandointerpreter cmd.exe den Vorzug gibt.
Man merkt das z.B. daran:
Code:
C:\>command.com /P
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.
Der Vdm-Redirector ist bereits geladen.
C:\>ver
Microsoft Windows XP [Version 5.1.2600]
C:\>
Obwohl command.com permanent geladen ist, wird dennoch cmd.exe ausgeführt.
Unter bestimmten Umständen(*) wird aber tatsächlich noch COMMAND.COM (MS-DOS Version 5.00.500!) angezogen.
*) Batchdatei ruft andere Batchdatei auf
Diese Umstände scheinen sich durch die Servicepacks verändert zu haben.
Ausserdem hängt es auch mit der Umgebungsvariable ComSpec zusammen.
Auf Windows 2000 sieht die Sache so aus:
Code:
C:\Dokumente und Einstellungen\Administrator>ver
Microsoft Windows 2000 [Version 5.00.2195]
C:\Dokumente und Einstellungen\Administrator>command.com
Befehl oder Dateiname nicht gefunden
VDM-IPX/SPX-Unterstützung kann nicht geladen werden.
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-1999.
C:\DOKUME~1\ADMINI~1>
Hier erkennt man den kurzen Pfadnamen, dass tatsächlich COMMAND.COM geladen wurde.
Auf "alten" Windowsversionen ist *.bat mit COMMAND.COM verknüpt.
Microsoft hätte bestimmt auch nicht *.cmd eingeführt, wenn dahinter nicht eine bestimmte Absicht stehen würde:
*.cmd verwendet
immer cmd.exe, während *.bat ursprünglich auf COMMAND.COM verweist und später auf das neuere cmd.exe migriert wird.