2-speed
Goto Top

In Batchdatei mit Powershell Datum in CSV Datei ergänzen

Hallo zusammen,

ich benötige nochmal euer Schwarmwissen.
Ich habe eine Batch Datei welche mir eine aus der Wawi exportierte CSV Datei wie folgt bearbeitet.
Hier erstmal ein Teil der Datei:

Artikelnummer;Verfuegbar;Bearbeitung
NR-CTO7;0;7
NR-CTO6;0;7
NR-CTO5;0;7
NR-CT8;3;7
NR-CT7;0;7
NR-CT6;-2;7
NR-CT5;0;7
NR-51615-616;0;7
NR-51615-615;55;7
NR-51615;55;7
NR-51614-616;0;7
NR-51614-615;0;7
NR-51614;0;7
NR-51610-616;-10;7
NR-51610-615;1;7
NR-51610;0;7

In spalte 2 bleibt jetzt alles was auf 0 ist auf 0
Was größer als 5 ist wird auf 6 gesetzt und alles was kleiner als 0 also im Minusbereich wird auf Null gesetzt.
Jetzt soll in der Spalte 3 mit dem Aktuellen Datum plus den Wert in dieser Spalte gesetzt werden. Also wäre das heute dann der 14.09.2018
Datumformat sollte auch so sein.
Danach wird die Datei wieder als CSV gespeichert.

Hier das Script was ich bisher nutze und als Batch ausführe:

@echo on

CHCP 1252
powershell -Executionpolicy ByPass -NoProfile -Command "Import-Csv 'C:\JTL_Upload\Stocklist_exp.csv' -Delimiter ';' -Encoding default| %%{$betrag = [decimal]::Parse($_.Verfuegbar,[cultureinfo]::GetCultureInfo('de')); if ($betrag -lt 0){$_.Verfuegbar = 0}elseif($betrag -gt 5){$_.Verfuegbar = 6};$_} | export-csv 'C:\JTL_Upload\stocklist.csv' -Delimiter ';' -NoTypeInformation -Encoding default"


Vielen Dank für eure Hilfe.

Content-Key: 385781

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

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

Mitglied: 137084
137084 Sep 07, 2018, updated at Sep 09, 2018 at 15:01:05 (UTC)
Goto Top
@echo off
powershell -Executionpolicy ByPass -NoProfile -Command "Import-Csv 'C:\JTL_Upload\Stocklist_exp.csv' -Delimiter ';' -Encoding default| %%{$betrag = [decimal]::Parse($_.Verfuegbar,[cultureinfo]::GetCultureInfo('de')); if ($betrag -lt 0){$_.Verfuegbar = 0}elseif($betrag -gt 5){$_.Verfuegbar = 6};$_.Bearbeitung = (Get-Date).AddDays([int]$_.Bearbeitung).toString('┌∩┐ dd.MM.yyyy ┌∩┐');$_} | export-csv 'C:\JTL_Upload\stocklist.csv' -Delimiter ';' -NoTypeInformation -Encoding default"  
Is mas mis fott von de Acker...face-smile
Member: 2-speed
2-speed Sep 07, 2018 at 14:37:43 (UTC)
Goto Top
Hi ElMano,

vielen Dank. Top.
Das funktioniert schon super.
Bekommst du es hin das dass Datum nur dort reingeschrieben wird wo die Verfuegbarkeit auf 0 ist.
Ansonsten kann das leer bleiben.


Gruß

2-Speed
Mitglied: 137084
137084 Sep 07, 2018 updated at 14:41:11 (UTC)
Goto Top
Schau dir einfach die If-Abfrage im bestehenden Code an dann schaffst du das auch alleine, sonst lernst du nüscht.
Member: 2-speed
2-speed Sep 07, 2018 at 15:57:48 (UTC)
Goto Top
Sorry ich bekomme es nicht hin. Nehme ich die falsche Variable?

@echo off


powershell -Executionpolicy ByPass -NoProfile -Command "Import-Csv 'C:\JTL_Upload\Stocklist_exp.csv' -Delimiter ';' -Encoding default| %%{$betrag = [decimal]::Parse($_.Verfuegbar,[cultureinfo]::GetCultureInfo('de')); if ($betrag -lt 0){$_.Verfuegbar = 0}elseif($betrag -gt 5){$_.Verfuegbar = 6};if ($betrag > 0){$_.Bearbeitung = ' '}elseif($betrag = 0){$_.Bearbeitung = (Get-Date).AddDays([int]$_.Bearbeitung).toString('dd.MM.yyyy');}$_} | export-csv 'C:\JTL_Upload\stocklist.csv' -Delimiter ';' -NoTypeInformation -Encoding default"
Mitglied: 137084
137084 Sep 07, 2018, updated at Sep 09, 2018 at 15:00:37 (UTC)
Goto Top
Nehme ich die falsche Variable?
Ja. Du brauchst offensichtlich zehn Tassen Kaffee, du schreibst oben du willst Verfuegbarkeit prüfen und nimmst den Betrag in der Condition???? Ehrlich gesagt ziemlich ...
Member: 2-speed
2-speed Sep 07, 2018 at 19:24:47 (UTC)
Goto Top
Sorry dann bin ich dämlich. Aber ich weis nicht weiter. Hab von Powershell eben keine Ahnung.
Wenn Du mir helfen könntest wäre das echt mega freundlich face-smile.

Vielen Dank.
Mitglied: 137084
137084 Sep 07, 2018, updated at Sep 09, 2018 at 15:00:27 (UTC)
Goto Top
@echo off
powershell -Executionpolicy ByPass -NoProfile -Command "Import-Csv 'C:\JTL_Upload\Stocklist_exp.csv' -Delimiter ';' -Encoding default| %%{$betrag = [decimal]::Parse($_.Verfuegbar,[cultureinfo]::GetCultureInfo('de')); if ($betrag -lt 0){$_.Verfuegbar = 0}elseif($betrag -gt 5){$_.Verfuegbar = 6};if([int]$_.Verfuegbar -eq 0){$_.Bearbeitung = (Get-Date).AddDays([int]$_.Bearbeitung).toString('┌∩┐ dd.MM.yyyy ┌∩┐')};$_} | export-csv 'C:\JTL_Upload\stocklist.csv' -Delimiter ';' -NoTypeInformation -Encoding default"  
.
Member: 2-speed
2-speed Sep 07, 2018 at 21:51:46 (UTC)
Goto Top
Vielen Dank.