nolle99
Goto Top

Datum in einer CSV datei in Tage umwandeln

Hi leute

Ich habe eine .CSV Datei in der folgendes steht

123412413243;weber;02.08.2016
23434412413243;meier;18.08.2016
1232434413243;kurt;;
993413243243243;meier;25.08.2016
993413243243243;kleber;25.11.2016

Jetzt soll eine neue Datei erzeugt werden bei der das Datum ersetzt wird durch die Anzahl der Tage von heute bis zu dem Datum.

Geht sowas mit einer batch???? Ich habe gegooglt und was zu "set Datum" gefunden aber ich habe von sowas leider keine Ahnung.

Content-ID: 311484

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

Ausgedruckt am: 24.11.2024 um 03:11 Uhr

129813
129813 02.08.2016 aktualisiert um 17:22:23 Uhr
Goto Top
Powershell
$csv = Import-CSV 'c:\data.csv' -delimiter ";" -Head '1','2','3'  
$csv | ?{$_.3 -ne ''} | %{$_.3 = ((get-date $_.3) - (get-date)).Days}  
$csv | export-csv 'c:\data.csv' -delimiter ";" -NoType -Encoding UTF8  
Regards
TsukiSan
TsukiSan 03.08.2016 um 11:58:57 Uhr
Goto Top
Oder VBS

Const Trenner = ";"  
Const Spalte = 2
Dim FSO

Set FSO = CreateObject("Scripting.FileSystemObject")  
MeineZeilen = Split(FSO.OpenTextFile("MeineCSV.csv").ReadAll,vbcrlf)  
For i = 0 to Ubound(MeineZeilen) - 1
	Temp = Split(MeineZeilen(i),Trenner)
	If Not Temp(Spalte) = "" Then  
		Msgbox(DateDiff("d",temp(Spalte),Now))  
	End If

Next

Set FSO = Nothing

Gruss

Tsuki
129813
129813 03.08.2016 aktualisiert um 12:41:42 Uhr
Goto Top
Msgbox(DateDiff("d",temp(Spalte),Now))
Why don't you write it back to the file, instead of displaying face-smile?
TsukiSan
TsukiSan 03.08.2016 um 12:49:14 Uhr
Goto Top
Hi highload,

because the TO should also learn something while we provide him/her with a plenty of solutions face-smile

br

Tsuki
129813
129813 03.08.2016 aktualisiert um 13:07:57 Uhr
Goto Top
Zitat von @nolle99:
ich habe von sowas leider keine Ahnung.
I wish him good luck face-wink, or a good portion of learning attendance.
TsukiSan
TsukiSan 03.08.2016 um 13:08:03 Uhr
Goto Top
so do i face-smile
nolle99
nolle99 03.08.2016 um 21:24:45 Uhr
Goto Top
Sry ich war krank face-sad

Ich habe es gerade getestet und bekomme in der neuen Datei nur ein  ausgegeben? Was ist falsch???

Das Powershellscript habe ich in eine .ps1 geschrieben und dann ausgeführt.
nolle99
nolle99 03.08.2016 um 21:25:43 Uhr
Goto Top
$csv = Import-CSV 'c:\data.csv' -delimiter ";" -Head '1','2','3'  
$csv | ?{$_.3 -ne ''} | %{$_.3 = ((get-date $_.3) - (get-date)).Days}  
$csv | export-csv 'c:\data.csv' -delimiter ";" -NoType -Encoding UTF8  

Sry ich war krank

Ich habe es gerade getestet und bekomme in der neuen Datei nur ein  ausgegeben? Was ist falsch???

Das Powershellscript habe ich in eine .ps1 geschrieben und dann ausgeführt.
129813
129813 03.08.2016 aktualisiert um 21:32:01 Uhr
Goto Top
Your file encoding is possibly the error try adding -encoding Default parameter to line 1, or choose the correct encoding. Important Note: This parameter is only availabe from PS 3.0 upwards!
nolle99
nolle99 04.08.2016 um 09:23:06 Uhr
Goto Top
-encoding Default funktioniert. Das Problem ist aber das nun ö,ä,ü gelöscht werden face-sad
129813
129813 04.08.2016 aktualisiert um 09:30:46 Uhr
Goto Top
You have to determine your source encoding, when it' default then you also have to export it with the right encoding face-wink
So change the export encoding in line 3 also to default, not UTF8.

Otherwise the encoding of your csv is non standard.
nolle99
nolle99 04.08.2016 um 09:45:44 Uhr
Goto Top
Hatte ich schon. Trotzdem werden öäü nicht kopiert. in der Grunddatei sind diese enthalten. Ich habe auch schon encoding ANSII probiert aber dann geht garnichts.
129813
129813 04.08.2016 aktualisiert um 10:23:15 Uhr
Goto Top
Then your file has no BOM better convert it to a usable format. And update your powershell if it's old.

Here this works without problems. Your CSV is the problem!!