Zum Inhalt springen

Initialisierungsdatei

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 6. April 2026 um 21:30 Uhr durch imported>Y2kbug (Verwendung: RHEL verlinkt).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Eine Initialisierungsdatei bzw. kurz INI-Datei, abgeleitet von der meist im 8.3-Schema genutzten Dateinamenserweiterung .INI, ist eine Konfigurationsdatei für diverse Software, die die darin gespeicherten Einstellungen für den benutzerdefinierten Start verwendet.<ref></ref> Mit der ersten Version von Microsoft Windows, Windows 1.0,<ref name="expert_guide_to_win98_contents_of_ini_files"></ref> wurde die Initialisierungsdatei WIN.INI dafür verwendet, die in der Systemsteuerung angepassten Benutzereinstellungen für den nächsten Windows-Start zu speichern.<ref></ref> Dieses Windows-INI-Format oder ein daran angelehntes Textformat wurde später nicht nur von Windows-Anwendungen übernommen, es wird auch von diversen Programmen betriebssystemübergreifend genutzt, u. a. um Einstellungen dauerhaft zu speichern.

Dem Windows-Standard folgend sind INI-Dateien meist einfache Textdateien, zunächst im ASCII-Zeichensatz, die Schlüssel-Wert-Paare enthalten, die ggf. durch Sektionen gegliedert werden.<ref name="Handbook_of_Software_for_Engineers_and_Scientists-modifying_the_initialization_files" /> Da jedes Programm eigene INI-Dateien definieren kann, entspricht das genaue Format jedoch möglicherweise nicht dem von Microsoft vorgegebenen Standard. Beispielsweise nutzt OS/2 binäre INI-Dateien.<ref></ref>

Bis zur Einführung der Registrierungsdatenbank mit Windows NT 3.1 war die Vorlage:Monospace die einzige Initialisierungsdatei zur Speicherung von Programm-Konfigurationen, was durch die WinAPI unterstützt wurde. In späteren Windows-NT-Versionen ist der API-Zugriff zwar noch vorhanden, wird aber als veraltet angesehen.<ref>Gerhard Stephan: How to access INI Files in C# .NET. (Blog) In: All about nothing – .NET C#, Oracle, SQL Server and all other stuff that gives live a sense. 11. September 2006, archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 20. November 2006; (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „Sometimes you’ll find your self in a situation where you need to use outdated techniques in order to support outdated applications … That time you’ll recognize that .NET does not support INI Files anymore.“</ref>

Das INI-Format von Windows gilt als einfach aufgebautes und zugleich von Menschen leicht lesbares Dateiformat, das grundsätzlich mit jedem Texteditor bearbeitet werden kann. Allerdings sind die Bezeichnungen der Einstellungen damit keineswegs auch selbsterklärend und aussagekräftig.<ref name="PC_Magazin-getting_more_out_of_windows-winini-comments"></ref>

Aufbau

Die Initialisierungsdaten werden zeilenweise abgelegt: ein Gleichheitszeichen trennt den Schlüssel von seinem Wert.<ref name="Handbook_of_Software_for_Engineers_and_Scientists-modifying_the_initialization_files"></ref> <syntaxhighlight lang="ini"> Schlüssel=Wert </syntaxhighlight>

Um Schlüssel in sog. Sektionen zu gruppieren, ist eine (pro Datei eindeutige) Bezeichnung in eckigen Klammern über der jeweiligen Sektion anzugeben. Benannte Sektionen sind nicht verpflichtend, je Sektion müssen die Schlüssel eindeutig sein.

<syntaxhighlight lang="ini"> [Sektion1] Schlüssel=Wert [Sektion2] Schlüssel=Wert Schlüssel2=Wert </syntaxhighlight>

Außerdem erlaubt das Dateiformat Kommentarzeilen, diese beginnen mit einem Semikolon.<ref name="PC_Magazin-getting_more_out_of_windows-winini-comments" />

<syntaxhighlight lang="ini">

Kommentar

</syntaxhighlight>

Verwendung

Die Verwendung von Daten und Dateien, die an Anlehnung an das von Microsoft kreierte INI-Format gehalten sind, ist mannigfaltig.

Einige Beispiele:

  • Die Konfigurationsdateien für Subversion-Repositories nutzen das INI-Format.<ref>Chapter 7. Customizing Your Subversion Experience. In: VisualSVN. VisualSVN Software Ltd., abgerufen am 6. April 2026 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „The Subversion runtime configuration area is a two-tiered hierarchy of option names and their values. Usually, this boils down to a special directory that contains configuration files (the first tier), which are just text files in standard INI format where “sections” provide the second tier. You can easily edit these files using your favorite text editor (such as Emacs or vi), and they contain directives read by the client to determine which of several optional behaviors the user prefers.“</ref>
  • Der Network Manager unter Linux speichert die Profile im INI-Format unter /etc/NetworkManager/system-connections/<Verbindungs-Bezeichnung>.nmconnection<ref>Chapter 38. NetworkManager connection profiles in keyfile format. In: Red Hat Documentation – Red Hat Enterprise Linux. Red Hat, abgerufen am 6. April 2026 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „The keyfile format is an INI-like configuration for network connections.“</ref>
  • Die für Unix-artige Systeme von freedesktop.org standardisierten XDG-Desktop-Programmverknüpfungen mit der Dateiendung .desktop sind im INI-Format.<ref>Desktop entries. (Wiki) In: Arch Wiki. Arch Linux, abgerufen am 6. April 2026 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „The format of desktop entries is similar to INI files.“</ref>
  • Die Daten von WireGuard zum Einrichten einer VPN-Verbindung verwenden das INI-Format. Die Daten können zwar auch manuell eingegeben werden, meist bieten WireGuard-Clients jedoch das direkte Laden der Daten aus einer INI-Datei, die Übertragung per Kopieren und Einfügen oder das Einlesen per QR-Code.<ref>[[:Vorlage:Monospace]]. (Manpage) In: Linux manual page. man7.org, 15. August 2015, abgerufen am 6. April 2026 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „The configuration file format is based on INI.“</ref><ref>Andrijan Möcker: Gleichzeitige WireGuard-Verbindungen. In: Heise online. 14. Februar 2025.Vorlage:Abrufdatum; Zitat: „Das Open-Source-Projekt kommt als Docker-Container und bietet eine Weboberfläche, über die Sie komfortabel Peer-Profile erstellen und herunterladen oder als QR-Code weitergeben können.“.</ref>

Regeln

Vorlage:Hinweisbaustein Beim Erstellen einer INI-Datei sind folgende Regeln zu beachten:

  • Jede Sektion darf nur einmal vorkommen.
  • Jeder Schlüssel darf nur einmal je Sektion vorkommen.
  • Auf Werte wird mittels Sektion und Schlüssel zugegriffen.
  • Kommentare werden mit einem „;“ eingeleitet.
  • Kommentare dürfen nur auf separaten Zeilen (nicht hinter Sektionsüberschriften oder Schlüsseln) stehen.
  • Leerzeichen und Anführungszeichen werden von verschiedenen Programmen teilweise unterschiedlich behandelt.
  • Groß- und Kleinschreibung wird nicht unterschieden
  • Aussagenlogik: False und No werden als 0, True und Yes als 1 interpretiert.

Es gibt Dateien mit nahezu demselben Aufbau, die sich lediglich durch folgende Merkmale unterscheiden:

  • Fehlende oder andere Dateiendung (z. B. .conf und .cfg)
  • Einleitung von Kommentaren mit einem anderen Zeichen (z. B. „#“).

Alternative Formate

Speicherort

Vorlage:Hinweisbaustein

Datei:Bid-O-Matic path.png
Beispiel einer benutzerfreundlichen Auswahlmöglichkeit zur Festlegung des Speicherortes

In früheren Windows-Ausgaben (mit der Einführung von NTFS) existierten zwei alternative/konkurrierende Philosophien für den Standard-Dateipfad zur INI-Ablage, wobei auf der einen Seite die Benutzerfreundlichkeit und auf der anderen Seite die Sicherheit im Vordergrund stand.

Im Folgenden am Beispiel von Windows XP:

  • \Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten\<Programmname>\
    (allgemein, über eine sogenannte Umgebungsvariable: %APPDATA%\<Programmname>; englisch: \Documents and Settings\<Benutzername>\Application Data\<Programmname>\)
  • \Programme\<Programmname>\
    (allgemein: %PROGRAMFILES%\<Programmname>; englisch: \Program Files\<Programmname>\)

Ab Windows Vista wird die Veränderung des Programme-Ordners durch Benutzer mit eingeschränkten Rechten (oder Nicht-Administratoren) standardmäßig von der Benutzerkontensteuerung blockiert, wovon auch dort gespeicherte INI-Dateien betroffen sind. Manche Programme vergeben daher bei der Installation sämtliche Rechte für die installierten Dateien an den Benutzer „Jeder“. In diesen Windows-Versionen existieren ggf. zudem automatisch erzeugte Kopien der INI-Dateien im Schattenverzeichnis $USERDIR$\AppData\Local\VirtualStore\Windows\.

Anwendungen, die ihre Einstellungen in ihrem eigenen Programmordner ablegen (beispielsweise %PROGRAMFILES%\<Programmname>\ oder %UserProfile%\Desktop\<Programmname>\), bieten den Vorteil, dass sie leichter auf einen anderen Rechner übertragbar sind, haben aber den Nachteil, dass sich alle Benutzer der Anwendung auf einem Rechner diese Einstellungen teilen. Solche Anwendungen werden auch als portabel bezeichnet. Voraussetzung zum Ändern dieser Einstellungen ist, dass der Benutzer Schreibrechte auf die INI-Datei (und den Programmordner) besitzt.

Weblinks

  • GetPrivateProfileString: Microsoft Windows API-Funktion zum Auslesen von Werten aus einer INI-Datei.
  • GetPrivateProfileSection: Microsoft Windows API-Funktion zum Auslesen von allen Schlüsseln und Werten aus einer Sektion der INI-Datei.
  • GetPrivateProfileSectionNames: Microsoft Windows API-Funktion zum Auslesen von Sektionen aus einer INI-Datei.
  • simpleini – eine plattformübergreifende C++-Bibliothek, die ein einfaches API zum Lesen und Schreiben von Konfigurationsdateien im INI-Format bietet
  • mc.ext.ini – Beispiel für eine moderne INI-Datei im Windows-INI-Format: die „Extension“-Datei des Midnight Commander

Einzelnachweise

<references />