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-ID: 653450

Url: https://administrator.de/forum/frage-zum-script-txt-punkt-zu-komma-653450.html

Ausgedruckt am: 22.12.2024 um 08:12 Uhr

147669
Lösung 147669 18.02.2021, aktualisiert am 19.02.2021 um 10:03:49 Uhr
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