Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Inhalt einer INI Datei in eine Datei schreiben per PS

Frage Entwicklung Batch & Shell

Mitglied: pixel0815

pixel0815 (Level 1) - Jetzt verbinden

18.11.2014, aktualisiert 16:11 Uhr, 809 Aufrufe, 6 Kommentare

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:

01.
[xxxxx] 
02.
POP3_SERVER= 
03.
POP3_PORT=110 
04.
SMTP_SERVER= 
05.
SMTP_PORT=25 
06.
SMTP_IDENTIFY=0 
07.
LDAP_SERVER= 
08.
LDAP_PORT=389 
09.
LDAP_IDENTIFY=0 
10.
NAME=name, vorname x 
11.
TELEFON= 
12.
IDENT=benutzername  x 
13.
MAIL_PATH=\\ 
14.
AUTHOR=0 
15.
USERID= 
16.
COMPANY= 
17.
DEPARTMENT= 
18.
DESKTOP= 
19.
OUTBOX_PATH= 
20.
ARCHIVE_PATH= 
21.
MAX_PRIO=3 
22.
ACCESS_LEVEL=15 
23.
PlayerViewMode=0 
24.
WorkMode=2 
25.
VOLUME=35
Vielen lieben Dank.
Heiko
Mitglied: StefanKittel
18.11.2014 um 15:47 Uhr
Hallo,

ich würde das mit getprivateprofilesectionnames und VBA machen.
Sind nur 5-6 Zeilen.

Stefan
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.11.2014, aktualisiert um 16:19 Uhr
Hallo Heiko,
darf man davon ausgehen das mehrere dieser Zeilen (NAME,IDENT) in der Datei in unterschiedlichen Sections vorkommen ? Dann z.B. so
01.
$pathINI = 'C:\temp\test.ini' 
02.
$pathCSV = 'C:\temp\export.csv' 
03.
$export = @() 
04.
$lines = gc 'C:\temp\test.ini' | ?{$_ -match '^NAME|^IDENT'} | %{$_.Split("=")[1]} 
05.
for($i = 0;$i -lt $lines.Length;$i +=2){ 
06.
    $export += New-Object PSObject -Property @{NAME=$lines[$i];IDENT=$lines[$i+1]} 
07.
08.
$export | export-csv $pathCSV -Delimiter ";" -NoTypeInformation -Encoding UTF8
oder so
01.
$pathINI = 'C:\temp\test.ini' 
02.
$pathCSV = 'C:\temp\export.csv' 
03.
$export = @() 
04.
[regex]::matches((gc $pathINI | out-string),'(?sm)^NAME=([^\r\n]*).*?^IDENT=([^\r\n]*)') | %{$export += New-Object PSObject -Property @{NAME=$_.Groups[1];IDENT=$_.Groups[2]}} 
05.
$export | export-csv $pathCSV -Delimiter ";" -NoTypeInformation -Encoding UTF8
Grüße Uwe
Bitte warten ..
Mitglied: pixel0815
18.11.2014 um 16:11 Uhr
$Path = "User.ini"
$SearchString = "IDENT=*"
$csv = "C:\NAME.csv"

$StreamReader = New-Object System.IO.StreamReader($Path)
While ($StreamReader.Endofstream -eq $False){
$LineNumber +=1
$Line=$StreamReader.ReadLine()
If($Line -like $SearchString){
"LineNumber: {0} -- {1}" -f $LineNumber,$Line
}
}

so ähnlich hatte ich das jetzt aber das was du hier wieder gezaubert hast ist genau das :-o) Echt geiL! Dankeschön
Gruß
Heiko
Bitte warten ..
Mitglied: pixel0815
18.11.2014 um 16:26 Uhr
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.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.11.2014, aktualisiert 19.11.2014
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ä
01.
$pathINI = 'C:\temp\test.ini' 
02.
$pathCSV = 'C:\temp\export.csv' 
03.
$export = @() 
04.
$lines = (gc $pathINI) | ?{$_ -match '^NAME|^IDENT'} | %{$_.Split("=")[1]} 
05.
for($i = 0;$i -lt $lines.Length;$i +=2){ 
06.
    $parts = $lines[$i].Split(","); $name = $parts[0].Trim(); $vorname = ($parts[1]+'').Trim() 
07.
    $export += New-Object PSObject -Property @{Name=$name;Vorname=$vorname;IDENT=$lines[$i+1]} 
08.
09.
$export | export-csv $pathCSV -Delimiter ";" -NoTypeInformation -Encoding UTF8
Bitte warten ..
Mitglied: pixel0815
19.11.2014 um 08:58 Uhr
Das ist ja genial!!! Es funktioniert.
Bitte warten ..
Ähnliche Inhalte
Windows 10
gelöst Zeichenfolge in .reg Datei schreiben (Registry) (4)

Frage von MedicalAd zum Thema Windows 10 ...

Batch & Shell
gelöst Batch Eingabe in Datei schreiben (2)

Frage von MedicalAd zum Thema Batch & Shell ...

Windows Server
gelöst Terminalserver .ini Datei unter C:Windows (8)

Frage von geocast zum Thema Windows Server ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...