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

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

Ausgedruckt am: 19.11.2024 um 11:11 Uhr

137084
137084 07.09.2018, aktualisiert am 09.09.2018 um 17:01:05 Uhr
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
2-speed
2-speed 07.09.2018 um 16:37:43 Uhr
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
137084
137084 07.09.2018 aktualisiert um 16:41:11 Uhr
Goto Top
Schau dir einfach die If-Abfrage im bestehenden Code an dann schaffst du das auch alleine, sonst lernst du nüscht.
2-speed
2-speed 07.09.2018 um 17:57:48 Uhr
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"
137084
137084 07.09.2018, aktualisiert am 09.09.2018 um 17:00:37 Uhr
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 ...
2-speed
2-speed 07.09.2018 um 21:24:47 Uhr
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.
137084
137084 07.09.2018, aktualisiert am 09.09.2018 um 17:00:27 Uhr
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"  
.
2-speed
2-speed 07.09.2018 um 23:51:46 Uhr
Goto Top
Vielen Dank.