Hallo zusammen,
ich habe hier eine .csv Datei, die wie folgt aufgebaut ist:
1;39030;01/16/2024;;29600,00;
1;39030;02/21/2024;03/22/2024;10600,00;
7;39030;02/16/2024;;29600,00;
2424003;39030;01/31/2024;03/01/2024;4050,00;
2424021;39030;02/21/2024;03/22/2024;4050,00;
2424039;39030;03/07/2024;04/06/2024;4050,00;
2424058;39030;04/09/2024;05/09/2024;4050,00;
Man sieht, dass der Aufbau zeilenweise identisch ist, außer dass in Spalte 4 manchmal etwas steht und manchmal nicht (siehe Zeile 1 oder 3)
Ich habe jetzt von ChatGPT eine .bat Datei schreiben lassen, die zeilenweise prüfen soll, ob in Spalte 4 etwas steht und wenn nicht, den Inhalt aus Spalte 3 in Spalte 4 kopiert. Wenn schon ein Wert in Spalte 4 steht, soll nichts geschehen.
So sieht das Skript aktuell aus:
Das Problem ist nun, dass er bei der Prüfung die leeren Spalte 4 nicht erkennt und stattdessen in Spalte 5 prüft, ob etwas drinsteht und das Skript dann seinen eigentlichen Zweck verfehlt, weil er vermeintlich Inhalte findet.
Ich habe weder ChatGPT noch Perplexity dazu bewegen können, dieses Problem zu beheben und würde jetzt gerne wissen, woran das liegen könnte und ob man das mit einer .bat überhaupt lösen kann.
Freue mich über Input.
ich habe hier eine .csv Datei, die wie folgt aufgebaut ist:
1;39030;01/16/2024;;29600,00;
1;39030;02/21/2024;03/22/2024;10600,00;
7;39030;02/16/2024;;29600,00;
2424003;39030;01/31/2024;03/01/2024;4050,00;
2424021;39030;02/21/2024;03/22/2024;4050,00;
2424039;39030;03/07/2024;04/06/2024;4050,00;
2424058;39030;04/09/2024;05/09/2024;4050,00;
Man sieht, dass der Aufbau zeilenweise identisch ist, außer dass in Spalte 4 manchmal etwas steht und manchmal nicht (siehe Zeile 1 oder 3)
Ich habe jetzt von ChatGPT eine .bat Datei schreiben lassen, die zeilenweise prüfen soll, ob in Spalte 4 etwas steht und wenn nicht, den Inhalt aus Spalte 3 in Spalte 4 kopiert. Wenn schon ein Wert in Spalte 4 steht, soll nichts geschehen.
So sieht das Skript aktuell aus:
Code:
@echo off
setlocal enabledelayedexpansion
set "inputFile=quelle.csv"
set "outputDir=D:\XXXXX"
set "outputFile=%outputDir%\output.csv"
rem Zielordner erstellen, falls er nicht existiert
if not exist "%outputDir%" (
mkdir "%outputDir%"
)
rem Zeilenweise durch die Datei iterieren
for /f "tokens=1-5 delims=;" %%a in (%inputFile%) do (
set "spalte1=%%a"
set "spalte2=%%b"
set "spalte3=%%c"
set "spalte4=%%d"
set "spalte5=%%e"
rem Überprüfen, ob Spalte 4 leer ist
if "!spalte4!"=="" (
echo Spalte 4 ist leer, kopiere Wert von Spalte 3: !spalte3!
set "spalte4=!spalte3!"
) else (
echo Spalte 4 hat bereits einen Wert: !spalte4!
)
rem Zeile in die Ausgabedatei schreiben
echo !spalte1!;!spalte2!;!spalte3!;!spalte4!;!spalte5!; >> "%outputFile%"
)
echo Fertig! Die Ausgabe wurde in %outputFile% gespeichert.
endlocal
pause
Das Problem ist nun, dass er bei der Prüfung die leeren Spalte 4 nicht erkennt und stattdessen in Spalte 5 prüft, ob etwas drinsteht und das Skript dann seinen eigentlichen Zweck verfehlt, weil er vermeintlich Inhalte findet.
Ich habe weder ChatGPT noch Perplexity dazu bewegen können, dieses Problem zu beheben und würde jetzt gerne wissen, woran das liegen könnte und ob man das mit einer .bat überhaupt lösen kann.
Freue mich über Input.