h41msh1c0r
Goto Top

Powershell mehrere Einträge in einer ini abspeichern

Hi PS Guru's,

Quelle:
<Marker>_<Datum>_<OS>

	# ini Kontent der geladen werden soll
	$FileContent 		= Get-IniContent "c:\settings.ini"  
	$PfadQuelle 	= $FileContent["Pfade"]["Pfad_Quelle"]  
	$PfadZiel 	= $FileContent["Pfade"]["Pfad_Ziel"]		  
	
	$array = Get-ChildItem $PfadQuelle | Where-Object { $_.PSIsContainer } | Foreach-Object { $_.Name }
	
	for ($i = 0; $i -lt $array.length; $i++)
	{
		$array[$i]
		
		$Marker = $array.GetValue($i).split("_") | Select -First 1  # hier hole ich mir den Marker aus dem Ordnernamen  
				
		$letzte_Software_Version = Get-ChildItem "C:\Quelle\Software\$Marker" | Where-Object { $_.PSIsContainer } | Foreach-Object { $_.Name } | Select -Last 1  # hier hole ich mir die Versionen aus dem Marker Verzeichnis  
		$Version = $letzte_Software_Version.split("_") | Select -Last 1  # hier hole ich mir die Version aus dem Ordnernamen  
		
		$row = @("Start", "", "", $array[$i], $Version, "Download", "Upload")  # befüllen der GridZeile  
		$dataGridView1.Rows.Add($row) # hinzufügen der GridZeile
		
		$Eintrag = @{
			”Quelle” = $array[$i]
			”Version” = $Version
		}
		
		$NewINIContent = @{ “Eintrag_$i” = $Eintrag }
	}
	
	Out-IniFile -InputObject $NewINIContent -FilePath "C:\Settings.ini" -force  

Ich bekomme das Quellverzeichnis ausgelesen und bekomme auch das Datagrid gefüllt.
Jetzt versuche ich die eingelesenen Einträge in ein ini File zu schreiben.

Folgender Link war schon recht hilfreich für Einzelne Einträge.
http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/20/use-power ...

Wenn das ini File noch nicht existiert erstelle ich es.
Wenn es existiert und Einträge vorhanden sind soll er natürlich die Einträge anpassen die zur Quelle gehören.

Mit Append fügt er allerdings nur hinten an.
Mit Force löscht er alles und schreibt die Datei neu.

Mit folgendem Konstrukt:

		$NewINIContent = @{@{ “Eintrag_0” = <Einträge von Zeile 1> }, @{ “Eintrag_1” = <Einträge von Zeile 2> }}

Kann ich die ini auch per force neuschreiben, allerdings habe ich noch nicht rausbekommen wie ich das Array im Array geschachtelt bekomme. =(

Hat jemand(z.B. Uwe der Retter in der Not?) einen Hinweis?

Gruß

Content-Key: 285410

Url: https://administrator.de/contentid/285410

Printed on: April 24, 2024 at 01:04 o'clock

Mitglied: 114757
114757 Oct 13, 2015 updated at 12:28:05 (UTC)
Goto Top
Moin,
mach das doch so
Powershell Profil in ini speichern
Schon Fix und Fertig.

Gruß jodel32
Member: H41mSh1C0R
H41mSh1C0R Oct 13, 2015 at 12:27:59 (UTC)
Goto Top
Der Wald vor lauter Bäumen!!!!!

$NewINIContent += @{ “Eintrag_$i” = $Eintrag } 

Jetzt Statt $NewINIContent noch das geladene von oben $FileContent benutzt und der restliche Inhalt der ini bleibt auch erhalten.

Jetzt muss ich nur noch rausbekommen wieso er in so einer komischen Reihenfolge die ini schreibt.

Eintrag 1
Eintrag 3
Konfiguration
Eintrag 0
Eintrag 2

*grübel*
Member: H41mSh1C0R
H41mSh1C0R Oct 13, 2015 updated at 13:45:36 (UTC)
Goto Top
Hi Jodel,

danke für den Link, probier ich gleich mal aus.

Gruß


EDIT:

Ich bekomme das nun zwar auch als XML geschrieben und gelesen, allerdings ist auch hier die Reihenfolge der Einträge:

1
3

2


;(


Ich habe die Frage in den Thread verschoben: Powershell Profil in ini speichern

Da dort Uwe die ursprünglichen Scripte eingefügt hatte.