blueeyephoenix
Goto Top

Frage zum Script .txt Punkt zu Komma

Hallo Community,

ich habe da mal eine Frage zu einem Script. dieses sieht wie folgt aus:

$DateiPfad = 'C:\Pfad\Datei*.txt'  

$Zeilen =  Get-Content -Path $DateiPfad
$ZeilenZähler = 1

foreach($Zeile in $Zeilen)
{
    $Zeile = $Zeile -replace '\.',','  
    
    Write-Host $Zeile

    If($ZeilenZähler -eq 1 ) {
       Out-File -FilePath $DateiPfad -InputObject $Zeile -Force
    }
    Else {
        Out-File -FilePath $DateiPfad -InputObject $Zeile -Force -Append
    }
    $ZeilenZähler++
}

Hier zur Frage. Ich habe eine Textdatei bei der ich ab einem bestimmten Bereich den Punkt zu einem Komma umwandeln möchte. Das o. g. Script macht mir zwar den Punkt zum Komma aber leider über die komplette Datei. Ich würde das Script gerne so einstellen das es erst ab spalte 10 den punkt zum Komma verändert.

Was genau muss ich dafür noch machen?

Vielen Dank schonmal im Voraus.

Content-Key: 653450

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

Printed on: April 26, 2024 at 09:04 o'clock

Mitglied: 147669
Solution 147669 Feb 18, 2021, updated at Feb 19, 2021 at 09:03:49 (UTC)
Goto Top
Ich würde das Script gerne so einstellen das es erst ab spalte 10 den punkt zum Komma verändert.
Dann beschäftige dich lieber gleich mal mit Import-CSV anstatt hier die Datei raw einzulesen, sondern diese als Object einzulesen und dann die passende Spalte anzusprechen. Hier weiß außerdem keiner wie deine "Spalten" voneinander getrennt sind.

Hier mal ein Beispiel

Datei sieht so aus:
Spalte1;Spalte2;Spalte3
Bla;Blub;10.00
Bla;Blub;20.00
Code zum ändern der Spalte 3
$datei = 'D:\daten.csv'  
$daten = Import-CSV $datei -delimiter ";"  
$daten | %{$_.Spalte3 = $_.Spalte3 -replace '\.',','}  
$daten | export-csv $datei -Delimiter ";" -NoType -Encoding UTF8  

So damit solltest du jetzt selbst klar kommen um es auf deine Bedürfnisse anpassen zu können!

Gruß SK