nur bestimmte Spalten aus csv Datei auslesen
Guten Morgen,
ich suche ein Lösung für folgendes Problem:
Ich hab in einem Batch mehrere csv Dateien deren Aufbeu eigentlich identisch sein sollte zu einer Datei zusammengefasst
und wollte diese in eine Tabelle vom SQL-Server 2000 importieren.
Der Import ist aber leider auf Fehler gelaufen da ab Zeile 67000 die Spalten nicht mehr mit den vorhergenden Zeilen übereinstimmen.
Jetzt zu meiner Frage:
Ich benötige nur die Spalten 1-7 der Datei.
Wie kann ich mittels Batch die Spalten 8-x aus der CSV-Datei löschen ?
Für eine Antwort wäre ich sehr dankbar.
ich suche ein Lösung für folgendes Problem:
Ich hab in einem Batch mehrere csv Dateien deren Aufbeu eigentlich identisch sein sollte zu einer Datei zusammengefasst
und wollte diese in eine Tabelle vom SQL-Server 2000 importieren.
Der Import ist aber leider auf Fehler gelaufen da ab Zeile 67000 die Spalten nicht mehr mit den vorhergenden Zeilen übereinstimmen.
Jetzt zu meiner Frage:
Ich benötige nur die Spalten 1-7 der Datei.
Wie kann ich mittels Batch die Spalten 8-x aus der CSV-Datei löschen ?
Für eine Antwort wäre ich sehr dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 120169
Url: https://administrator.de/contentid/120169
Ausgedruckt am: 16.11.2024 um 11:11 Uhr
13 Kommentare
Neuester Kommentar
Hy Stefan,
bastla ist im Urlaub [Hä - Hat er sich verdient], er könnte dir sicher was zaubern.
Er hat mir vor geraumer Zeit etwas in VB gescriptet das deiner Sache nahe kommt.
Wenn du etwas VBS kannst , kannst du damit sicherlich was anfangen, in dem Script werden auch Zeilen übersprungen da ich nur bestimmte benötigte und werden in eine andere Datei geschrieben.
Guckst du hier : Wie CSV per Batch oder VBS in Fremdformat umwandeln ?!
PS:Ich bin leider kein VBS´ler
bastla ist im Urlaub [Hä - Hat er sich verdient], er könnte dir sicher was zaubern.
Er hat mir vor geraumer Zeit etwas in VB gescriptet das deiner Sache nahe kommt.
Wenn du etwas VBS kannst , kannst du damit sicherlich was anfangen, in dem Script werden auch Zeilen übersprungen da ich nur bestimmte benötigte und werden in eine andere Datei geschrieben.
Guckst du hier : Wie CSV per Batch oder VBS in Fremdformat umwandeln ?!
PS:Ich bin leider kein VBS´ler
Eine CSV kannst du auch mit Excel öffenen ...
Wenn die Datensätze nicht gerade mit einen ; getrennt werden müsstest du dann noch den Delimiter einstellen und hast es dann alles schön sauber in Spalten.
Dann kannst du alles bis auf Spalte 1-7 bzw A-G löschen und unter... Speichern unter .... als csv speichern...
geht am schnellsten :D bevor du anfängst zu proggen ... es sei denn du hast 100 von den Dateien
Wenn die Datensätze nicht gerade mit einen ; getrennt werden müsstest du dann noch den Delimiter einstellen und hast es dann alles schön sauber in Spalten.
Dann kannst du alles bis auf Spalte 1-7 bzw A-G löschen und unter... Speichern unter .... als csv speichern...
geht am schnellsten :D bevor du anfängst zu proggen ... es sei denn du hast 100 von den Dateien
Moinsen,
kaum ist der Bastla im Urlaub, tanzen die Mäuse auf dem Tisch
Als Batch - die so gut funktioneren sollte, daß nur ein "B" aus denm B Bereich dort was dran zu bemängeln haben kann...
Und trotzdem ungetestet aus dem Stehgreif....
for /f "tokens=1,7,1-7 delims=, " %%a in (pfad\zur\test.csv) do echo %%a,%%b,%%c,%%d,%%e,%%f,%%g>>pfad_zur_neuen7stelligen.csv
Gruß
Hallo StefanLausL!
Sorry, habe mich verlesen
Gruß Dieter
Sorry, habe mich verlesen
Gruß Dieter
Hallo StefanLausL!
Falls Du mein VB-Script meinst, dann liegt das daran, dass ich nur von maximal 8 Spalten ausgegangen bin. Mehr hatte ich nicht vorgesehen. Ist aber kein Problem, mache nur noch ein paar Tests.
Gruß Dieter
Falls Du mein VB-Script meinst, dann liegt das daran, dass ich nur von maximal 8 Spalten ausgegangen bin. Mehr hatte ich nicht vorgesehen. Ist aber kein Problem, mache nur noch ein paar Tests.
Gruß Dieter
Hallo nochmal!
Also, mit diesem Code müssen mindestens 7 Spalten vorhanden sein. Ab Spalte 8 werden alle Spalten ignoriert.
Diese Variante sollte in jedem Fall funktionieren:
Gruß Dieter
[edit] Text auf das wesentliche gekürzt [/edit]
Also, mit diesem Code müssen mindestens 7 Spalten vorhanden sein. Ab Spalte 8 werden alle Spalten ignoriert.
Diese Variante sollte in jedem Fall funktionieren:
Const iPath = "F:\$Scripts\Test\Import.Csv"
Const ePath = "F:\$Scripts\Test\Export.Csv"
Const Delim = ";" 'Bei Tab: Delim = vbTab
Dim Fso, iFile, eFile, iText, eText(6), i
Set Fso = CreateObject("Scripting.FileSystemObject")
Set iFile = Fso.OpenTextFile(iPath)
Set eFile = Fso.CreateTextFile(ePath)
Do Until iFile.AtEndOfStream
iText = Split(iFile.ReadLine, Delim, 8)
If UBound(iText) >= 6 Then
For i = 0 To 6: eText(i) = iText(i): Next
eFile.WriteLine Join(eText, Delim)
End If
Loop
iFile.Close: eFile.Close
MsgBox "Der Exportvorgang ist beendet!", vbInformation, "Meldung"
Gruß Dieter
[edit] Text auf das wesentliche gekürzt [/edit]
Hallo StefanLausL!
Prima, gern Geschehen
Gruß Dieter
Prima, gern Geschehen
Gruß Dieter