Inhalt einer INI Datei in eine Datei schreiben per PS
Hallo zusammen,
ich habe gerade eine Idee bezüglich einer verzwickten Konfigurationsdatei ( *.ini ) und einer extrahierung von einzelnen Zeilen in eine Textdatei / CSV zum exportieren.
Das Skript soll die Zeile mit dem NAMEN und IDENT in eine csv Datei schreiben. Die Datei ist unglaublich lang und deshalb würde ich gerne genau die zwei Zeilen exportieren lassen um diese Liste in Excel dann zu vervollständigen.
Hat da jemand was auf Tasche?
Ein Auszug aus der Datei:
Vielen lieben Dank.
Heiko
ich habe gerade eine Idee bezüglich einer verzwickten Konfigurationsdatei ( *.ini ) und einer extrahierung von einzelnen Zeilen in eine Textdatei / CSV zum exportieren.
Das Skript soll die Zeile mit dem NAMEN und IDENT in eine csv Datei schreiben. Die Datei ist unglaublich lang und deshalb würde ich gerne genau die zwei Zeilen exportieren lassen um diese Liste in Excel dann zu vervollständigen.
Hat da jemand was auf Tasche?
Ein Auszug aus der Datei:
[xxxxx]
POP3_SERVER=
POP3_PORT=110
SMTP_SERVER=
SMTP_PORT=25
SMTP_IDENTIFY=0
LDAP_SERVER=
LDAP_PORT=389
LDAP_IDENTIFY=0
NAME=name, vorname x
TELEFON=
IDENT=benutzername x
MAIL_PATH=\\
AUTHOR=0
USERID=
COMPANY=
DEPARTMENT=
DESKTOP=
OUTBOX_PATH=
ARCHIVE_PATH=
MAX_PRIO=3
ACCESS_LEVEL=15
PlayerViewMode=0
WorkMode=2
VOLUME=35
Vielen lieben Dank.
Heiko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 255170
Url: https://administrator.de/forum/inhalt-einer-ini-datei-in-eine-datei-schreiben-per-ps-255170.html
Ausgedruckt am: 07.04.2025 um 19:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo Heiko,
darf man davon ausgehen das mehrere dieser Zeilen (NAME,IDENT) in der Datei in unterschiedlichen Sections vorkommen ? Dann z.B. so
oder so
Grüße Uwe
darf man davon ausgehen das mehrere dieser Zeilen (NAME,IDENT) in der Datei in unterschiedlichen Sections vorkommen ? Dann z.B. so
$pathINI = 'C:\temp\test.ini'
$pathCSV = 'C:\temp\export.csv'
$export = @()
$lines = gc 'C:\temp\test.ini' | ?{$_ -match '^NAME|^IDENT'} | %{$_.Split("=")[1]}
for($i = 0;$i -lt $lines.Length;$i +=2){
$export += New-Object PSObject -Property @{NAME=$lines[$i];IDENT=$lines[$i+1]}
}
$export | export-csv $pathCSV -Delimiter ";" -NoTypeInformation -Encoding UTF8
$pathINI = 'C:\temp\test.ini'
$pathCSV = 'C:\temp\export.csv'
$export = @()
[regex]::matches((gc $pathINI | out-string),'(?sm)^NAME=([^\r\n]*).*?^IDENT=([^\r\n]*)') | %{$export += New-Object PSObject -Property @{NAME=$_.Groups[1];IDENT=$_.Groups[2]}}
$export | export-csv $pathCSV -Delimiter ";" -NoTypeInformation -Encoding UTF8
Zitat von @pixel0815:
Eine Frage hab ich noch.
Kann man aus dem Ergebnis das ich habe, also speziell aus dem NAME der da steht die Daten nochmal auseinanderpflücken und den
Name aufsplitten in Vor und Nachname? Ein Teil aus der INI Datei sind nämlich Anwender die immer als Nachname, Vorname
geschrieben werden.
abä sischä Eine Frage hab ich noch.
Kann man aus dem Ergebnis das ich habe, also speziell aus dem NAME der da steht die Daten nochmal auseinanderpflücken und den
Name aufsplitten in Vor und Nachname? Ein Teil aus der INI Datei sind nämlich Anwender die immer als Nachname, Vorname
geschrieben werden.
$pathINI = 'C:\temp\test.ini'
$pathCSV = 'C:\temp\export.csv'
$export = @()
$lines = (gc $pathINI) | ?{$_ -match '^NAME|^IDENT'} | %{$_.Split("=")[1]}
for($i = 0;$i -lt $lines.Length;$i +=2){
$parts = $lines[$i].Split(","); $name = $parts.Trim(); $vorname = ($parts[1]+'').Trim()
$export += New-Object PSObject -Property @{Name=$name;Vorname=$vorname;IDENT=$lines[$i+1]}
}
$export | export-csv $pathCSV -Delimiter ";" -NoTypeInformation -Encoding UTF8