﻿;-- TIME_STAMP   2023-01-16 13:32:45

#cs
    Automatisiertes Erstellen einer INI mit folgenden Daten
    - INI-Name: "NAME_vom_RootOrdner.ini"
    - Struktur im RootOrdner: OrdnerName\*.exe  (mehrere EXE möglich)
    - für jeden Ordner wird eine Sektion erstellt: "OrdnerName"
    - in jeder Sektion werden die Schlüssel:
        "path"=kpl. Ordnerpfad
        "run"=file1.exe|file2.exe|...
      angelegt
    Sollten neue Ordner hinzugefügt worden sein - Programm erneut ausführen, alte INI wird gelöscht.
#ce

#include <File.au3>
#include <Array.au3>

_Scan()

Func _Scan()
    Local $INI = @ScriptDir & '\' & StringTrimLeft(@ScriptDir, StringInStr(@ScriptDir, '\', 0, -1)) & '.ini'
    If FileExists($INI) Then FileDelete($INI)
    Local $aFolder = _FileListToArray(@ScriptDir, '*', 2, True)
    If Not @error Then
        For $i = 1 To $aFolder[0]
            _CreateSection($INI, $aFolder[$i])
        Next
    EndIf
EndFunc


Func _CreateSection($INI, $_sPath)
    Local $aEXE = _FileListToArray($_sPath, '*.exe', 1)
    If Not @error Then
        Local $sSection = StringTrimLeft($_sPath, StringInStr($_sPath, '\', 0, -1))
        IniWrite($INI, $sSection, 'path', $_sPath)
        IniWrite($INI, $sSection, 'run', _ArrayToString($aEXE, '|', 1))
    EndIf
EndFunc
