Nach einer Woche von Versuchen muss ich dich das fragen.Formatierung der Ausgabe einer .txt in Powershell
Datei-Eingang:
DD/MM
27,28
14,21
1
15
7
12
2,15
25
Jede Zeile dieser Datei einen Monat darstellt, also auch wenn Es ist leer, es sollte noch so die Formatierung zählen kann passieren. Dann basierend auf Dateieingabe, die gewünschte Ausgabe ist:
gewünschte Ausgabe:
DD/MM
27/02
28/02
14/04
21/04
01/05
15/06
07/09
12/10
02/11
15/11
25/12
Was habe ich bisher und stecken hier:
#getting the content into an array and formatting the .DAT file
$lines = Get-Content $outfileBR
If ($lines[0] -eq "DD/MM") {
$HEADER = $lines[0] + $linebreak
}
If ($lines[1] -eq '') {
continue
} Else {
$BRFILE = $lines[1].SUBSTRING(0,2) + "/01" + $linebreak
$BRFILE += $lines[1].SUBSTRING(3,2) + "/01" + $linebreak
}
If ($lines[2] -eq '') {
continue
} Else {
$BRFILE2 = $lines[2].SUBSTRING(0,2) + "/02" + $linebreak
$BRFILE2 += $lines[2].SUBSTRING(3,2) + "/02" + $linebreak
}
If ($lines[3] -eq '') {
continue
} Else {
$BRFILE3 = $lines[3].SUBSTRING(0,2) + "/03" + $linebreak
$BRFILE3 += $lines[3].SUBSTRING(3,2) + "/03" + $linebreak
}
Set-Content $BRdatFile ($HEADER + $BRFILE + $BRFILE2 + $BRFILE3)
Ergebnis:
DD/MM
/01
/01
27/02
28/02
/03
/03
Wie ich schon sagte, jede Zeile bezieht sich auf einen Monat, aber wenn die Zeile leer ist (wie in der Eingabedatei gezeigt), werde ich sie nicht in der Ausgabe anzeigen. Aber auf meinem Ergebnis erscheint es als/01 für Januar,/03 für März und so weiter.
Was mache ich bitte falsch?
Ihre Eingabedatei enthält 12 Zeilen einschließlich der Kopfzeile, obwohl in Ihrem Screenshot der letzte Monat als Dezember (12) angezeigt wird. Ich glaube, du hast vergessen, nach der Zeile mit "15" (für Juni) eine Leerzeile einzufügen. –
Hallo Ronald, danke für deine Hilfe hier. Das Kopieren und Einfügen funktionierte nicht sehr gut. Du hast Recht, eine leere Zeile für August fehlt nach 15. – DevHawk