Per Batch erste 7 Zeilen einer Datei löschen und Werte per Suchen Ersetzen ändern?
Hallo,
wie im Titel bereits geschrieben möchte ich eine CSV Datei bearbeiten damit ich diese in Access einlesen kann und zwar sollen im ersten Schritt die ersten 7 Zeilen der Datei gelöscht werden und dann in Schritt 2 das Textrennzeichen von Komma in Semikolon geändert werden sprich "," ersetzen durch ";" danach sollte die neue Datei in einem neuen Folder gespeichert werden so das Access diese dann einlesen kann. Die ursprüngliche Datei kann dann gelöscht werden und Access dann gestartet werden um den gespeicherten Import einzulesen.
Meine Frage ist das mit Batch alles realisierbar, oder gibt es da heutzutage bessere mittel / Wege?
Gruß
TheRealErebos
wie im Titel bereits geschrieben möchte ich eine CSV Datei bearbeiten damit ich diese in Access einlesen kann und zwar sollen im ersten Schritt die ersten 7 Zeilen der Datei gelöscht werden und dann in Schritt 2 das Textrennzeichen von Komma in Semikolon geändert werden sprich "," ersetzen durch ";" danach sollte die neue Datei in einem neuen Folder gespeichert werden so das Access diese dann einlesen kann. Die ursprüngliche Datei kann dann gelöscht werden und Access dann gestartet werden um den gespeicherten Import einzulesen.
Meine Frage ist das mit Batch alles realisierbar, oder gibt es da heutzutage bessere mittel / Wege?
Gruß
TheRealErebos
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1376844691
Url: https://administrator.de/forum/per-batch-erste-7-zeilen-einer-datei-loeschen-und-werte-per-suchen-ersetzen-aendern-1376844691.html
Ausgedruckt am: 21.04.2025 um 21:04 Uhr
7 Kommentare
Neuester Kommentar

Meine Frage ist das mit Batch alles realisierbar, oder gibt es da heutzutage bessere mittel / Wege?
Dafür nimmt man meist gleich die Powershell und keine Batch mehrGet-Content 'D:\datei.csv' | select -skip 7 | ConvertFrom-CSV -Delimiter "," | export-csv 'D:\data\dateineu.csv' -Delimiter ";" -NoTypeInformation -Encoding UTF8
Moin,
Würde daher besser wirklich einfach mit replace arbeiten
Gruß Thomas
Zitat von @149569:
so werden die Inhalte von Zeile 8 aber als Header genommen - wenn dort dann 2 Zellen den gleichen Inhalt haben, fliegt einem das um die Ohren. Get-Content 'D:\datei.csv' | select -skip 7 | ConvertFrom-CSV -Delimiter ","
Würde daher besser wirklich einfach mit replace arbeiten
(Get-Content 'D:\datei.csv' | select -skip 7).Replace(',',';') | Set-Content 'D:\data\dateineu.csv' -Encoding UTF8
Gruß Thomas

Zitat von @TK1987:
Moin,
Ja davon war ich erst mal ausgegangen, da er nichts zum Inhalt geschrieben hat. Das lässt sich ja leicht ändern wenn er uns mehr erzählt Moin,
Zitat von @149569:
so werden die Inhalte von Zeile 8 aber als Header genommen - Get-Content 'D:\datei.csv' | select -skip 7 | ConvertFrom-CSV -Delimiter ","
Würde daher besser wirklich einfach mit replace arbeiten
(Get-Content 'D:\datei.csv' | select -skip 7).Replace(',',';') | Set-Content 'D:\data\dateineu.csv' -Encoding UTF8
Das fliegt einem aber auch noch mehr um die Ohren wenn dann Kommas innerhalb von den Werten ersetzt werden die in Anführungszeichen stehen und dann verfälschte Daten in der Datenbank landen
Zitat von @149569:
Das fliegt einem aber auch noch mehr um die Ohren wenn dann Kommas innerhalb von den Werten ersetzt werden die in Anführungszeichen stehen und dann verfälschte Daten in der Datenbank landen
face-wink.
Das fliegt einem aber auch noch mehr um die Ohren wenn dann Kommas innerhalb von den Werten ersetzt werden die in Anführungszeichen stehen und dann verfälschte Daten in der Datenbank landen
Zitat von @TheRealErebos:
Replace wäre da ein Problemm da er dann auch die Dezimalwerte auf ; ändern würde sprich statt 12,88 12;88 z.b. das wäre Semioptimal
In dem Fall hat die Datei aber dann auch definitiv Feldbegrenzer, somit kann man das Ganze dann auch leicht so handhaben:Replace wäre da ein Problemm da er dann auch die Dezimalwerte auf ; ändern würde sprich statt 12,88 12;88 z.b. das wäre Semioptimal
(Get-Content 'D:\datei.csv' | select -skip 7) -Replace '(?<="),(?="|$)',';' | Set-Content 'D:\data\dateineu.csv' -Encoding UTF8
Gruß Thomas
Zitat von @TheRealErebos:
Edit:
die Batch Datei wäre so ja okay da in Zeile 8 die Überschrift steht [...]
Wenn dort die Header stehen ist das natürlich etwas anderes, dann kannst du den Codeschnipsel von @149569 natürlich nehmen.Edit:
die Batch Datei wäre so ja okay da in Zeile 8 die Überschrift steht [...]