Eine Initialisierungsdatei ist eine Datei, die einen Zustand beim Start einer Software herstellt. Häufig werden Konfigurationsdateien oder Skipte als Initialisierungsdateien genutzt. Die darin enthaltenen Einstellungen erlauben einen benutzerdefinierten Start.
Initialisierungsdateien folgen keinem klar definierten Format, denn sie sind stark von der jeweiligen Umgebung, z. B. dem Betriebssystem, und der spezifischen Software abhängig. Technisch sind Initialisierungsdateien meist Textdateien, das heißt, sie enthalten reinen Text, der mit jedem Texteditor bearbeitet und daher auch verändert werden kann. Es gibt aber auch Initialisierungsdateien, die in einem binären Format gespeichert sind, wie beispielsweise Dateien mit der Endung .ini von OS/2 (1987). Manchmal gibt es ein eigens zur Bearbeitung der gespeicherten Einstellungen vorgesehenes Programm, mit dessen Hilfe sich die Initialisierungsdatei(en) bearbeiten lassen, manchmal bietet das Hauptprogramm selbst die Möglichkeit dazu.
Von einigen Programmen wird ein an das INI-Format von Windows angelehntes Format für Initialisierungsdateien genutzt. Dabei handelt es sich um ein einfach aufgebautes und zugleich von Menschen leicht lesbares Dateiformat. Die genaue Konvention, beispielsweise für Kommentare, variiert jedoch und so ist auch die Verarbeitung durch die Software im Detail unterschiedlich. Auch sind die Bezeichnungen der Einstellungen keineswegs selbsterklärend oder aussagekräftig. Außerdem existieren INI-Dateien (Textdateien mit der Endung .ini), die sich überhaupt nicht an dieselbe Konvention halten, beispielsweise Microsoft OLE DB (1996): diese enthalten zwar ebenfalls reinen Text, allerdings in einem unterschiedlichen Format.
Viele Teile von Unix verwenden globale Initialisierungsdateien in /etc sowie benutzerspezifische im Benutzerverzeichnis, um nach dem Start einen initialen Zustand herzustellen. Ein Beispiel dafür ist die Datei /etc/profile, ein Shellskript, der von der Unix-Shell beim Start ausgeführt wird.
Unter MS-DOS bzw. PC DOS, sowie dazu kompatiblem DOS, und Windows etablierten sich INI-Datei, abgeleitet von der im 8.3-Schema genutzten Dateinamenserweiterung .INI für „Initialisierung“. INI-Dateien werden von diverser Software genutzt, nicht nur vom Betriebssystem. Mit der ersten Version von Windows, Windows 1.0, wurde die Initialisierungsdatei WIN.INI dafür verwendet, die in der Systemsteuerung angepassten Benutzereinstellungen für den nächsten Windows-Start zu speichern. In der WinAPI ist eine Schnittstelle zum Lesen und Schreiben von Initialisierungsdaten im INI-Format enthalten. Viele Windows-Programme übernahmen daher das Format dieser INI-Dateien. In späteren Windows-NT-Versionen ist die Schnittstelle zwar noch vorhanden, dient aber nur noch der Kompatibilität mit 16-Bit-Anwendungen.
Diese INI-Dateien sind Textdateien, die Schlüssel-Wert-Paare enthalten, die ggf. durch Abschnitte (englisch section) gegliedert werden.
Die Initialisierungsdaten werden zeilenweise abgelegt: ein Gleichheitszeichen trennt den Schlüssel von seinem Wert.
Schlüssel=Wert
Um Schlüssel in sog. Abschnitte zu gruppieren, ist eine (pro Datei eindeutige) Bezeichnung in eckigen Klammern über dem jeweiligen Abschnitt anzugeben. Benannte Abschnitte sind nicht verpflichtend, je Abschnitt müssen die Schlüssel eindeutig sein.
[Abschnitt1]
Schlüssel=Wert
[Abschnitt2]
Schlüssel=Wert
Schlüssel2=Wert
Außerdem erlaubt das Dateiformat Kommentarzeilen, diese beginnen mit einem Semikolon.
; Kommentar
Beim Erstellen und Bearbeiten einer Windows-API-INI-Datei gelten folgende Regeln:
; eingeleitet. # ist im Microsoft-Windows-Format kein Kommentar.
Unter Windows 9x legten Programme ihre INI‑Dateien meist direkt im eigenen Installationsordner ab, weil es weder Benutzertrennung noch Zugriffsrechte gab. Mit Windows 2000 wollte Microsoft dieses Modell ablösen. Programme sollten nicht mehr in Program Files schreiben, sondern benutzerspezifische Daten in %APPDATA% bzw. %LOCALAPPDATA% und systemweite Einstellungen bevorzugt in der Registrierungsdatenbank speichern. XP bot die neue Struktur an, erzwang sie aber nicht, weil die meisten Nutzer Administratoren waren und viele Programme weiterhin wie unter Win9x arbeiteten.
Mit Windows Vista wurde diese Trennung technisch durchgesetzt: Schreibzugriffe in Program Files sind für normale Benutzer blockiert, und inkompatible Altprogramme werden über die UAC‑Virtualisierung nach %LOCALAPPDATA%\VirtualStore umgeleitet. Gleichzeitig ersetzte Microsoft den alten „All Users\Application Data“-Pfad durch den neuen Ordner C:\ProgramData, der als zentraler, systemweiter Speicherort für gemeinsam genutzte Anwendungsdaten dient und damit die Struktur aus Benutzerprofil, Program Files und Registry klar ergänzt.
Unter Windows XP waren alle genannten Pfade vollständig lokalisiert, weil XP die Ordner physisch in der jeweiligen Sprache angelegt hat. Aus „Documents and Settings“ wurde „Dokumente und Einstellungen“, aus „Application Data“ wurde „Anwendungsdaten“, und auch „Program Files“ erschien als „Programme“. Erst ab Windows Vista wurden die physischen Ordnernamen vereinheitlicht und nicht mehr übersetzt. Vista zeigte zwar weiterhin lokalisierte Anzeigenamen im Windows-Explorer, aber die tatsächlichen Pfade blieben englisch (z. B. C:\ProgramData, C:\Users, C:\Program Files).
Abkürzungen des Dateipfads durch einen %Namen% in Prozentzeichen nennt man Umgebungsvariable.
Anwendungen, die ihre Einstellungen in ihrem eigenen Programmordner ablegen, bieten den Vorteil, dass sie leichter auf einen anderen Rechner übertragbar sind oder direkt auf entfernbaren Speichermedien wie USB-Sticks an verschiedenen Rechnern genutzt werden können. Solche Anwendungen werden im Windows-Umfeld manchmal als portabel bezeichnet.
Die WIN.INI wurde durch die Registrierungsdatenbank abgelöst, weshalb es Fehlermeldungen gibt, in denen sich auf beide gleichzeitig bezogen wird. INI hat keine genormte Spezifikation und seine Implementierung in der Windows-API ist auch nicht gut dokumentiert. Heute noch verwenden viele Programme auf allen Betriebssystemen, die von Microsoft popularisierte Dateiendung .ini. Meistens wird der Inhalt jedoch von einer plattformunabhängigen Bibliothek gelesen, die meist anderen Regeln für ein allgemeineres Konfigurationsdateiformat folgt.
Aufgrund der Verwendung der Endung .ini durch Windows, dessen Verbreitung und des Mangels eines formellen Namens für solche Konfigurationsdateien, wird sich oft auf „INI-ähnliche-Dateien“ bezogen, obwohl die Notation älter ist und nicht von Microsoft erfunden wurde.
Einige Beispiele:
/etc/NetworkManager/system-connections/<Verbindungs-Bezeichnung>.nmconnection.desktop sind in einem Format, das INI ähnlich ist.Python nutzt für Module einen mit dem Dateinamen __init__.py standardisierten Initialisierungsskript. Dieser ist ein regulärer Python-Skript, der jedoch nicht für die manuelle Ausführung gedacht ist, sondern für die Initialierung des jeweiligen Moduls durch Python selbst.
[section name]
keyname=value”