So wie ich es verstehe, .bat
ist die alte 16-Bit-Benennungskonvention, und .cmd
ist für 32-Bit-Windows, d. h. ab NT. Aber ich sehe weiterhin überall .bat-Dateien, und sie scheinen mit beiden Suffixen genau gleich zu funktionieren. Wenn ich davon ausgehe, dass mein Code nie auf etwas Älterem als NT laufen muss, spielt es dann wirklich eine Rolle, wie ich meine Batch-Dateien benenne, oder gibt es eine Ich hab's kapiert erwarten, dass ich das falsche Suffix verwende?
Antworten
Zu viele Anzeigen?Unter Windows 7 haben BAT-Dateien jedoch auch diesen Unterschied: Wenn Sie die Dateien TEST.BAT und TEST.CMD im selben Verzeichnis erstellen und TEST in diesem Verzeichnis ausführen, wird die BAT-Datei ausgeführt.
C:\>echo %PATHEXT%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
C:\Temp>echo echo bat > test.bat
C:\Temp>echo echo cmd > test.cmd
C:\Temp>test
C:\Temp>echo bat
bat
C:\Temp>
Da sich der ursprüngliche Beitrag auf die Folgen der Verwendung von .bat oder .cmd bezog Suffix , nicht unbedingt die Befehle innerhalb die Datei...
Ein weiterer Unterschied zwischen .bat und .cmd besteht darin, dass, wenn zwei Dateien mit demselben Dateinamen und diesen beiden Erweiterungen existieren, dann:
-
Eingabe von Dateiname ou Dateiname .bat in der Befehlszeile wird die .bat-Datei ausgeführt
-
Um die .cmd-Datei auszuführen, müssen Sie Folgendes eingeben Dateiname .cmd
Alles, was in einem Batch funktioniert, sollte auch in einem cmd funktionieren; cmd bietet einige Erweiterungen zur Steuerung der Umgebung. Außerdem wird cmd von einem neuen cmd-Interpreter ausgeführt und sollte daher schneller (bei kurzen Dateien nicht spürbar) und stabiler sein, da bat unter der emulierten 16-Bit-Umgebung von NTVDM läuft.