# 4DOS

4DOS ist ein Kommandozeileninterpreter des Unternehmens JP Software, der den mitgelieferten, funktionsärmeren Interpreter von PC-kompatiblem DOS, wie COMMAND.COM von MS-DOS, ersetzt. Ursprünglich als Shareware vertrieben, wurde 4DOS mit Version 7.50 unter einer modifizierten MIT-Lizenz als Open-Source-Programm ohne Support durch den Hersteller freigegeben. Von 2006 bis 2009 wurde diese Software von Latschesar Georgiew (bulgarisch Лъчезар Георгиев, Transliteration Luchezar Georgiev) weiterentwickelt.

## Kompatible Entwicklungen

Weitgehend kompatible Entwicklungen für andere Betriebssysteme sind 4OS2 (mittlerweile auch Open Source) für OS/2 sowie 4NT und Take Command für Windows NT (proprietär), welche ebenfalls von JP Software entwickelt wurden. Nur Take Command wird noch von JP Software vertrieben.
Die Norton Utilities enthielten NDOS, eine auf Version 4 basierende Lizenzversion von 4DOS. Diese war für den deutschsprachigen Markt vollständig lokalisiert worden.

## Vorteile

4DOS bietet eine Reihe von Vorteilen gegenüber dem gewöhnlichen Kommandozeileninterpreter:
* circa 60 zusätzliche Befehle
* erweiterte Funktionen für bestehende Befehle
* erweiterte Strukturen für die Programmierung von Stapelverarbeitungen (siehe auch →Skriptsprache)
* umfangreichere Editierfunktionen der Kommandozeile mit Verlaufsspeicher (englisch „History“), schnellen Verzeichniswechsel u.v.m
* erweiterte Möglichkeit der Farbgestaltung bei Kommandozeile, Befehlen und Anzeige
* mehr als 60 interne Umgebungsvariablen und 90 Funktionen zur Manipulation und Darstellung von System-Informationen, Zeichenketten, Zahlen, Datums- und Zeitwerten, Datei-Informationen

## Versionsgeschichte

| Version | Veröffentlichung | Anmerkungen |
| 1 | 1988 | Rex Conn begann bereits 1986 an 4DOS zu arbeiten. Die ersten Versionen wurden 1988 im Compuserve-Forum an interessierte Nutzer abgegeben. |
| 2.00 | 15. Februar 1989 | Erste kommerzielle Veröffentlichung durch JP Software. Verbessertes Editieren der Kommandozeile, Dateinamen-Vervollständigung, Kommando-Historie, Aliases, erweiterte Wildcards, Online-Hilfe, interne Variablen, Unterstützung von EMS und Auslagerung auf die Festplatte, Datei-Beschreibungen (englisch „File Descriptions“), Command Separator, Tastatur-Stack… |
| 2.20 | 5. Juli 1989 | startbare Erweiterungen |
| 3.00 | 7. März 1990 | Batch-to-Memory-Stapelverarbeitungsdateien (Dateiendung .BTM), Verwendung von XMS, Auslagerung auf die Festplatte, variable Funktionen etc. |
| 4.00 | 1. November 1991 | Farbige Verzeichnisliste, zentrale Konfigurations-Datei 4DOS.INI, Listen, Kommando-Gruppen, CDD, Unterstützung von UMB… |
| 5.00 | 23. November 1993 | Datum und Zeit, Größeneinheiten; komprimierte Stapelverarbeitungen |
| 5.51 | 22. August 1995 | Unterstützung für langen Dateinamen, REXX in .BAT- and .BTM-Dateien |
| 6.00 | 24. Juli 1997 | Erweiterte Verzeichnissuche, interaktive Konfiguration, exclusion ranges, interaktiver Debugger für Stapelverarbeitungen |
| 7.00 | 18. Juni 2001 | @file-Listen (so wie in DR-DOS) |
| 7.50 | 24. Februar 2003 | Benutzerdefinierte Funktionen |
| 7.50.1 | November 2006 | Offener Quellcode, entspricht Version 7.50. Diese Version wird intern mit build 132 bezeichnet. Latschesar Georgiew (bulgarisch Лъчезар Георгиев) entwickelte 4DOS weiter, ab Version 7.50 build 133 stammen die Änderungen von ihm. |
| 7.51 | 31. Januar 2007 | Die von Latschesar Georgiew weiter entwickelte Version wurde seit build 151 auch in der Versionsnummer um eine Zahl erhöht. Es gilt die Formel Version = 6.00 + BUILD ÷ 100, daher Version 7.51 bei build 151. |
| 7.60 | 28. Dezember 2007 | Zahlreiche Fehlerbereinigungen und kleine Verbesserungen sowie Mausrad-Unterstützung. |
| 8.00 | 27. Februar 2009 | Die bislang letzte Version weist gegenüber der letzten JP-Software-Veröffentlichung 4DOS 7.50 hauptsächlich Detailverbesserungen wie Bugfixes, neue Funktionen sowie Anpassungen für die Zusammenarbeit mit verschiedensten MS-DOS-kompatiblen Betriebssystemen auf. Eine Liste aller Änderungen findet sich im Changelog der Veröffentlichungen von Latschesar Georgiew. |