Powershell CSV, Spaltenwerte subtrahieren und Wert in neuer Spalte ausgeben
Hallo zusammen
Gleich zu Beginn: Ich bin absoluter Powershellanfänger, bisher habe ich nur einige Scripts geschrieben um XML Dateien zu manipulieren, Dateien zu verschieben und Dateien per WINSCP zu versenden. Das Forum hier hat mir schon viele Inputs gebracht auch für ältere "Projekte", komme nun aber wirklich nicht mehr weiter und habe mich registriert
Aktuell Arbeite ich mit CSV Dateien. Ich habe es geschafft unnötige Felder herauszufiltern und die beiden Dateien so zusammenzuführen, dass im neuen File die beiden Werte für die Berechnung zur Verfügung stehen. Das sieht aktuell etwa so aus:
Was Zeit Wert1 Wert2 Faktor Wert1_2
Muster1 07.12.2021 00:00 0 1 0.00
Muster2 07.12.2021 00:00 13240.52 1 13202.52
Muster3 07.12.2021 00:00 25580.4 3 25574.4
Nun müsste ich pro "Was" folgende Berechnung machen: ("Wert1" - "Wert1_2") * "Faktor"
Den Endwert hätte ich gerne in der noch nicht vorhandenen Spalte "Differenz".
Bitte nicht auslachen, folgendes habe ich bisher ausprobiert:
Import:
Versuch Spalte zu erstellen und irgendwie mit ForEach-Object berechnen:
Versuch Spalte erstellen und den Wert direkt mitgeben
Versuch einfach nur eine Variable zu erstellen
Bei meinem Code erhalte ich leider auch keine Fehlermeldung und habe so keinen Anhaltspunkt, nach was ich "googlen" muss. Den Faktor habe ich in meinen Versuchen noch gar nicht berücksichtigt, da ich zuerst den ersten Wert berechnen wollte.
Danke euch.
Liebe Grüsse
Gleich zu Beginn: Ich bin absoluter Powershellanfänger, bisher habe ich nur einige Scripts geschrieben um XML Dateien zu manipulieren, Dateien zu verschieben und Dateien per WINSCP zu versenden. Das Forum hier hat mir schon viele Inputs gebracht auch für ältere "Projekte", komme nun aber wirklich nicht mehr weiter und habe mich registriert
Aktuell Arbeite ich mit CSV Dateien. Ich habe es geschafft unnötige Felder herauszufiltern und die beiden Dateien so zusammenzuführen, dass im neuen File die beiden Werte für die Berechnung zur Verfügung stehen. Das sieht aktuell etwa so aus:
Was Zeit Wert1 Wert2 Faktor Wert1_2
Muster1 07.12.2021 00:00 0 1 0.00
Muster2 07.12.2021 00:00 13240.52 1 13202.52
Muster3 07.12.2021 00:00 25580.4 3 25574.4
Nun müsste ich pro "Was" folgende Berechnung machen: ("Wert1" - "Wert1_2") * "Faktor"
Den Endwert hätte ich gerne in der noch nicht vorhandenen Spalte "Differenz".
Bitte nicht auslachen, folgendes habe ich bisher ausprobiert:
Import:
$csvberechnung = Import-CSV $csvmatch -Delimiter ";"
Versuch Spalte zu erstellen und irgendwie mit ForEach-Object berechnen:
$csvberechnung | Add-Member -MemberType NoteProperty -Name 'Differenz' -Value $null
$csvberechnung | ForEach-Object {$csvberechnung.'Was' -in $csvberechnung
{$csvberechnung.Differenz = [int]$csvberechnung.Wert1 - [int]$csvberechnung.'Wert1_2'}}
Versuch Spalte erstellen und den Wert direkt mitgeben
$csvberechnung | Add-Member -MemberType NoteProperty -Name 'Differenz' -Value {[int]$csvberechnung.Wert1 - [int]$csvberechnung.'Wert1_2'}
Versuch einfach nur eine Variable zu erstellen
$Differenz = [int]$csvberechnung.Wert1 - [int]$csvberechnung.'Wert1_2'
Bei meinem Code erhalte ich leider auch keine Fehlermeldung und habe so keinen Anhaltspunkt, nach was ich "googlen" muss. Den Faktor habe ich in meinen Versuchen noch gar nicht berücksichtigt, da ich zuerst den ersten Wert berechnen wollte.
Danke euch.
Liebe Grüsse
Please also mark the comments that contributed to the solution of the article
Content-Key: 1596213315
Url: https://administrator.de/contentid/1596213315
Printed on: April 20, 2024 at 04:04 o'clock
2 Comments
Latest comment
$csvberechnung = Import-CSV $csvmatch -Delimiter ";"
$csvberechnung | select *,@{n='Differenz';e={([decimal]$_.Wert1 -[decimal]$_.Wert1_2) * [decimal]$_.Faktor}}