Writes a value or section to a standard format .ini file.

IniWrite, Value, Filename, Section, Key
IniWrite, Pairs, Filename, Section



The string or number that will be written to the right of Key's equal sign (=).

If the text is long, it can be broken up into several shorter lines by means of a continuation section, which might improve readability and maintainability.


[AHK_L 57+]: The complete content of a section to write to the .ini file, excluding the [SectionName] header. Key must be omitted. Pairs must not contain any blank lines. If the section already exists, everything up to the last key=value pair is overwritten. Pairs can contain lines without an equal sign (=), but this may produce inconsistent results. Comments can be written to the file but are stripped out when they are read back by IniRead.


The name of the .ini file, which is assumed to be in %A_WorkingDir% if an absolute path isn't specified.


The section name in the .ini file, which is the heading phrase that appears in square brackets (do not include the brackets in this parameter).


The key name in the .ini file.


[v1.1.04+] This command is able to throw an exception on failure. For more information, see Runtime Errors.

ErrorLevel is set to 1 if there was a problem or 0 otherwise.


Values longer than 65,535 characters can be written to the file, but may produce inconsistent results as they usually cannot be read correctly by IniRead or other applications.

A standard ini file looks like:


New files are created in either the system's default ANSI code page or UTF-16, depending on the version of AutoHotkey. UTF-16 files may appear to begin with a blank line, as the first line contains the UTF-16 byte order mark. See below for a workaround.

Unicode: IniRead and IniWrite rely on the external functions GetPrivateProfileString and WritePrivateProfileString to read and write values. These functions support Unicode only in UTF-16 files; all other files are assumed to use the system's default ANSI code page. In Unicode scripts, IniWrite uses UTF-16 for each new file. If this is undesired, ensure the file exists before calling IniWrite. For example:

FileAppend,, NonUnicode.ini, CP0 ; The last parameter is optional in most cases.


IniDelete, IniRead, RegWrite


IniWrite, this is a new value, C:\Temp\myfile.ini, section2, key