Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Batch & Shell

GELÖST

nur bestimmte Spalten aus csv Datei auslesen

Mitglied: StefanLausL

StefanLausL (Level 1) - Jetzt verbinden

10.07.2009, aktualisiert 18.10.2012, 15258 Aufrufe, 13 Kommentare

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.
Mitglied: crashzero2000
10.07.2009, aktualisiert 18.10.2012
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 : http://www.administrator.de/forum/wie-csv-per-batch-oder-vbs-in-fremdfo ...

PS:Ich bin leider kein VBS´ler
Bitte warten ..
Mitglied: -ricardo-
10.07.2009 um 11:42 Uhr
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
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 11:50 Uhr
Hallo crashzero2000 ,

vielen Dank für den Link.
Werd ich mir gleich mal anschauen.
Bin zwar auch kein VBS'ler aber ich schau mal wie weit ich komme
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 11:51 Uhr
Leider sind es mehrere Dateien die mehr als 65.000 Zeilen haben
d.h. mit Excel wird das nix.
Bitte warten ..
Mitglied: -ricardo-
10.07.2009 um 11:53 Uhr
Ja gut Zeilen das ist blöd..

Womit wolltest du es denn Programmieren ...

Vb?
Bitte warten ..
Mitglied: 60730
10.07.2009 um 12:28 Uhr
Zitat von -ricardo-:
Eine CSV kannst du auch mit Excel öffenen ..


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....
01.
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ß
Bitte warten ..
Mitglied: 76109
10.07.2009 um 13:50 Uhr
Hallo StefanLausL!

Sorry, habe mich verlesen

Gruß Dieter
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 14:02 Uhr
Problem mit dem vbs Skript ist das irgendwann Runtime Error erscheint.
Aus welchen Gründen auch immer.

Der Batch von TimoBeil funktioniert an sich zumindest mit wenigen Daten.
Wenn ich den Batch an den Echtdaten anwende erscheint "Nicht genügend Arbeitsspeicher".
Die Datei ist im Momen 750 MB gross.

Die Datei wurde ja aus vielen anderen csv Dateien erzeugt bzw. zusammengefügt.
Wie kann ich einen Ordner nach csv Dateien durchsuchen und auf die gefunden Dateien diesen Batch
anwenden um diese dann erst im nächsten Schritt zusammen zu fügen ?
Bitte warten ..
Mitglied: 76109
10.07.2009 um 14:27 Uhr
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
Bitte warten ..
Mitglied: 76109
10.07.2009 um 14:42 Uhr
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:
01.
Const iPath = "F:\$Scripts\Test\Import.Csv" 
02.
Const ePath = "F:\$Scripts\Test\Export.Csv" 
03.
 
04.
Const Delim = ";"  'Bei Tab: Delim = vbTab 
05.
 
06.
Dim Fso, iFile, eFile, iText, eText(6), i 
07.
 
08.
Set Fso = CreateObject("Scripting.FileSystemObject") 
09.
Set iFile = Fso.OpenTextFile(iPath) 
10.
Set eFile = Fso.CreateTextFile(ePath) 
11.
     
12.
Do Until iFile.AtEndOfStream 
13.
    iText = Split(iFile.ReadLine, Delim, 8) 
14.
    If UBound(iText) >= 6 Then 
15.
        For i = 0 To 6: eText(i) = iText(i): Next 
16.
        eFile.WriteLine Join(eText, Delim) 
17.
    End If 
18.
Loop 
19.
 
20.
iFile.Close:  eFile.Close 
21.
 
22.
MsgBox "Der Exportvorgang ist beendet!", vbInformation, "Meldung"
Gruß Dieter

[edit] Text auf das wesentliche gekürzt [/edit]
Bitte warten ..
Mitglied: StefanLausL
10.07.2009 um 16:20 Uhr
Super !

Vielen,vielen Dank.

Das scheint zu funktionieren.
Bitte warten ..
Mitglied: 76109
10.07.2009 um 18:08 Uhr
Hallo StefanLausL!

Prima, gern Geschehen

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Auslesen bestimmter Spalten aus csv
gelöst Frage von Berti82Batch & Shell6 Kommentare

Hallo, Ich bekomme regelmäßig csv-Dateien mit ca. 77 Spalten und prinzipiell unbegrenzten Zeilen. Diese muss ich eindampfen auf 5 ...

VB for Applications
Bestimmte Spalten aus CSV-Datei auslesen (VBS)
gelöst Frage von GurkenhobelVB for Applications9 Kommentare

Hallo Community, wieder benötige ich einmal kompetente Hilfe. Mein Script zum Auslesen bestimmte Spalten aus CSV-Dateien (über 200 " ...

Entwicklung
Bearbeitung einer CSV Datei an bestimmter Spalte
gelöst Frage von IT-WurzelEntwicklung13 Kommentare

Hallo an alle, ich bin gerade diesem Forum beigetreten, und wünsche allen erst einmal ein herzliches "Hallo" nun zu ...

Batch & Shell
String aus Spalte in csv auslesen und ersetzen
Frage von mIsSteRBatch & Shell4 Kommentare

Hallo, meine aktuelle Frage bezieht sich auf diese Frage von Dienstag. Ich muss nun eine csv auslesen und dort ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall9 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...