BOfH_666 577 Geschrieben 22. März 2022 Melden Teilen Geschrieben 22. März 2022 vor 1 Minute schrieb jschmidt: und tritt nur bei dem Datensatz mit dem Komma in der Datenzelle auf OK, und wenn Du diesen einen Datensatz manuell änderst, dann geht es? Ich würde dringend empfehlen, mich mit dem Anbieter in Verbindung zu setzen. Es wäre deutlich besser, diesen Fehler "an der Wurzel" zu beseitigen, als aufwändig an den Symptomen rumzudoktor'n. Wenn Du unbedingt willst, kannst Du selbstverständlich die CSV-Dateien mit PowerShell importieren und sie dann mit einem anderen Delimiter wieder exportieren. Zitieren Link zu diesem Kommentar
jschmidt 0 Geschrieben 22. März 2022 Autor Melden Teilen Geschrieben 22. März 2022 (bearbeitet) Leider werde ich es erstmal selbst angehen müssen, bis die was umsetzten könnten Monate vergehen... Ich werde das denen aber gleich mal melden. Wie könnt ich das denn in mein Skript mit einbauen? Ja, wenn ich das Komma manuell entferne läuft der Import komplett durch... bearbeitet 22. März 2022 von jschmidt Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 22. März 2022 Melden Teilen Geschrieben 22. März 2022 vor 26 Minuten schrieb jschmidt: Wie könnt ich das denn in mein Skript mit einbauen? Du importierst die CSV-Datei mit Import-Csv und speicherst das Ergebnis in einer Variablen - genau wie Du es mit Get-Content machst. Dann exportierst Du die Daten wieder mit Export-Csv und gibst einen passenden Delimiter mit dem Parameter -Delimiter an. Das solltest Du natürlich vor dem Entfernen der Header-Zeile machen. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 22. März 2022 Melden Teilen Geschrieben 22. März 2022 Moin, vor 29 Minuten schrieb jschmidt: Wie könnt ich das denn in mein Skript mit einbauen? du liest die Datei als CSV in PowerShell ein und speicherst sie in korrigierter Form wieder ab. Da könntest du jetzt zweierlei versuchen: die Daten unverändert lassen und die CSV-Datei mit einem Semikolon als Trenner speichern (oder Tab, je nachdem, was in den Daten nicht vorkommt) die Daten korrigieren, also alle Kommas in den Daten durch "irgendwas" ersetzen, und das CSV wieder mit dem Komma als Trenner speichern Du siehst schon - das läuft auf Gebastel raus und der nächste Importfehler ist nicht weit. Gruß, Nils 1 Zitieren Link zu diesem Kommentar
jschmidt 0 Geschrieben 22. März 2022 Autor Melden Teilen Geschrieben 22. März 2022 Super vielen Dank schonmal für die Hilfe! Könnt ihr nochmal drüber schauen, ob das was ich gemacht habe soweit passt? Nicht dass ich irgendwo einen Denkfehler drin hab. Soweit funktioniert es jetzt aber... $folder_csv = 'C:\Install\Impfschrank\Import' $backupfolder = 'C:\Install\Impfschrank\Import\Backup' $importfolder ='C:\Install\Impfschrank\Import\Import-enaio\' Copy-Item -Path C:\Install\Impfschrank\Import\*csv -Destination $backupfolder -Exclude C:\Install\Impfschrank\Import $fileList = Get-ChildItem -Path $folder_csv -Filter *.csv -File foreach ($file in $fileList) { $csv = Import-Csv $file.FullName $csv | Export-Csv -Delimiter ';' -NoTypeInformation $importfolder$file } Remove-Item $folder_csv\*.csv $fileList2 = Get-ChildItem -Path $importfolder -Filter *.csv -File foreach ($file in $fileList2) { $NewContent = Get-Content $file.FullName | Select-Object -Skip 1 $NewContent | Out-File -FilePath $file.FullName -Force -Encoding Default } Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 22. März 2022 Melden Teilen Geschrieben 22. März 2022 (bearbeitet) vor 58 Minuten schrieb jschmidt: Soweit funktioniert es jetzt aber... Na das ist doch die Hauptsache. Wenn Du das Ganze etwas strukturierter angehst, ist es leichter verständlich und der Code leichter zu pflegen falls nötig. Probier ma das hier! $folder_csv = 'C:\Install\Impfschrank\Import' $backupfolder = 'C:\Install\Impfschrank\Import\Backup' $importfolder = 'C:\Install\Impfschrank\Import\Import-enaio' $fileList = Get-ChildItem -Path $folder_csv -Filter *.csv -File foreach ($file in $fileList) { Copy-Item -Path $file.FullName -Destination $backupfolder $OutputFileName = Join-Path -Path $importfolder -ChildPath $file.Name $csv = Import-Csv $file.FullName $Csv | ConvertTo-Csv -Delimiter ';' | Select-Object -Skip 1 | Out-File -FilePath $OutputFileName } Aus Sicht der Skriptes ist der Import-Folder zwar der Output-Folder aber ich hab jetzt einfach mal Deine Variablennamen übernommen. bearbeitet 22. März 2022 von BOfH_666 Zitieren Link zu diesem Kommentar
jschmidt 0 Geschrieben 23. März 2022 Autor Melden Teilen Geschrieben 23. März 2022 Das sieht echt viel schöner aus, leider hab ichs damit nicht zum laufen gebracht... Jetzt bin ich aber erstmal froh das es überhaupt funktioniert, um die Feinheiten kümmere ich mich dann wenn alles läuft Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 23. März 2022 Melden Teilen Geschrieben 23. März 2022 vor 28 Minuten schrieb jschmidt: leider hab ichs damit nicht zum laufen gebracht... OK, das ist überhaupt gar nicht hilfreich. Wenn Du Dich also dazu entschließt, das Thema weiter zu verfolgen, muss da deutlich mehr kommen als das!! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.