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

gelöst CSV Datei auslesen per Batch

Mitglied: LowMind

LowMind (Level 1) - Jetzt verbinden

21.07.2011 um 19:24 Uhr, 16790 Aufrufe, 7 Kommentare

Hallo,

folgendes Problem bereitet mir gerade Kopfzerbrechen.

Ich möchte eine CSV Datei auslesen und zwar die ersten 4 Spalten einer Zeiel - in der 5 Spalte steht der Wert, der als Dateiname übernommen werden soll.
Jede Zeile soll eine Datei sein.

Bsp. CSV Datei
235456 | 1205435 | det | dtm | 118303111
234566 | 1205515 | det | dtm | 118300112
235455 | 2135465 | det | dtm | 118300116

Ergebnis Dateiname 118303111.txt
Inhalt 235456 1205435 det dtm

Ergebnis Dateiname 118300112.txt
Inhalt 235466 1205515 det dtm

Ergebnis Dateiname 118300116.txt
Inhalt 235455 2135465 det dtm

Ist sowas überhaupt per Batch möglich? Und kann man einen Zeilenumbruch programmieren!

Danke für eure Hilfe

Gruß
LowMind
Mitglied: Friemler
21.07.2011 um 19:57 Uhr
Hallo LowMind,

das erfordert lediglich einen Oneliner direkt auf der Kommandozeile:
for /f "usebackq tokens=1-5 delims=;" %a in ("Datei.csv") do @(>"%e" echo %a %b %c %d)
In einem Batchfile müssen die Prozentzeichen verdoppelt werden.

Es kostet schon etwas Aufwand, keinen Zeilenumbruch beim Ausgeben von Werten zu erzeugen.

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
22.07.2011 um 02:54 Uhr
... und falls die Datei nur "CSV" heißt, aber inhaltlich Deinem Beispiel entspricht (also als Trennzeichen "|" verwendet), ersetze delims=; durch delims=| ...

Grüße
bastla
Bitte warten ..
Mitglied: LowMind
22.07.2011 um 10:13 Uhr
Moin Friemler,

der Einzeiler ist schon fast perfekt, nur wofür stehen denn %b %c %d am Ende des Befehls.
Und die Datei heißt %e eigentlich soll sie ja wie die 5 Spalte heißen

Dadurch erhalte folgendes Ergebnis
235455;2135465;det;dtm;118300116 %b %c %d

Wie bekomm ich denn den Zeilenumbruch hin und evtl. auch das Semikolon weg?

Gruß
LowMind
Bitte warten ..
Mitglied: Friemler
22.07.2011 um 10:32 Uhr
Hallo LowMind,

%b, %c, %d und %e sind automatisch erzeugte Laufvariablen der FOR-Schleife. Automatisch erzeugt wegen tokens=1-5; dadurch wird FOR angewiesen, die Eingabedaten in 5 Teile (Tokens) zu zerlegen, für die 5 Variablen erstellt werden. Die Namen kommen dadurch zustande, dass ich in der Befehlszeile die Variable %a angegeben habe. Die automatisch erzeugten Variablen erhalten immer Namen, die vom Namen der angegebenen Variable ausgehend in alphabetisch aufsteigender Reihenfolge erzeugt werden. Als Markierung, wodurch die 5 Teile der Eingabedaten voneinander abgegrenzt werden, dient wegen delims=; das Semikolon. Siehe auch mein Tutorial zur FOR-Schleife.

Zur Fehlfunktion:
Du hast wahrscheinlich bastlas Rat befolgt, ohne ihn genau verstanden zu haben. Du hast ja anscheinend Semikolons als Trennzeichen in Deiner CSV-Datei, also musst Du meine Befehlszeile unverändert übernehmen.

Dein Problem mit dem angeblich fehlenden Zeilenumbruch verstehe ich nicht. Die Ausgabe wird auf jeden Fall mit einem Zeilenumbruch abgeschlossen. Das kannst Du überprüfen, indem Du die erzeugten Dateien in einen Texteditor lädst.

Gruß
Friemler
Bitte warten ..
Mitglied: LowMind
22.07.2011 um 10:42 Uhr
Hi Friemler,
Bastlas Anmerkung habe ich nicht übernommen - das "delims=" für das Trennzeichen steht - hab ich so begriffen.

ich habe deine Befehlszeile so übernommen und erhalte die Fehler.

Das mit dem Zeilenumbruch hätte ich mal genauer beschreiben sollen. ich möchte einen Zeilenumbruch nach dem auslesen der ersten beiden Spalten.

Ergebnis soll sein
235455;2135465;
det;dtm

Gruß Robin
Bitte warten ..
Mitglied: Friemler
22.07.2011 um 10:49 Uhr
Hallo LowMind;

"delims=" ist falsch, es muss "delims=;" heißen.

Btr. Deine neue Anforderung:
01.
for /f "usebackq tokens=1-5 delims=;" %a in ("Datei.csv") do @>"%e" (echo %a %b&echo.&echo %c %d)
Und wenn es jetzt immer noch nicht funktioniert, poste bitte den Inhalt Deiner CSV-Datei unter Verwendung der Codeformatierung für Plain Text, damit ich auch wirklich den original Inhalt zu sehen bekomme, unbeeinflusst vom Rendering der Forumssoftware.

Gruß
Friemler
Bitte warten ..
Mitglied: LowMind
22.07.2011 um 11:05 Uhr
Hi Friemler,

einfach nur Danke, es funktioniert super.

Warum ich nur den Befehl "delims=" geschrieben habe, war eigentlich nur zur Erklärung gedacht, dass ich begriffen habe, dass ich dort auch andere Trennzeichen angeben kann, wo nach getrennt werden soll.

Danke nochmal für die super Hilfe und ein schönes Wochenende

Gruß
LowMind
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien aus CSV mit Batch suchen
gelöst Frage von joes1609Batch & Shell5 Kommentare

Hallo zusammen, ich stehe gerade auf dem Schlauch. Ich habe eine CSV-Datei, in der stehen zusammengesetzt, jeweils ein kompletter ...

Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Batch & Shell
Batch File zum Auslesen einer Datei
gelöst Frage von Marcel1989Batch & Shell9 Kommentare

Hallo, Ich scheibe momentan ein Anmeldescript als batch mit dem Aufruf von VBS dateien. Hierfür haben wir bereits gruppen ...

Batch & Shell

Netshare Batch aus CMD auslesen und in CSV erstellen

gelöst Frage von nowyouseeme93Batch & Shell13 Kommentare

Das bekomme ich aus cmd Befehl: Share name Resource Remark ADMIN$ C:\Windows Remote Admin IPC$ Remote IPC I$ I:\ ...

Neue Wissensbeiträge
Linux Netzwerk

Installation eines Logservers mit Loganalyzer als Debian-VM auf Hyper-V

Anleitung von lcer00 vor 1 StundeLinux Netzwerk

Zuerst sei auf den schönen Beitrag von aqui hier im Forum verwiesen, in dem die loganalyzer-installation bereits beschrieben ist: ...

Humor (lol)
Antennagate 2018
Information von magicteddy vor 1 StundeHumor (lol)2 Kommentare

Da haut der angekaute Elektronikhersteller die teuersten Geräte auf den Markt und bekommt anscheinend die Basics mal wieder nicht ...

Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 1 TagDatenschutz2 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 2 TagenVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

Heiß diskutierte Inhalte
E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail24 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Windows Server
In-Place Upgrade von Windows Server 2008 R2 Datacenter zu Windows Server 2016 Datacenter (Zwischenschritt über 2012 R2)
gelöst Frage von TowerpleaseWindows Server16 Kommentare

Hallo Administratoren, Wir haben uns vor ein paar Monaten Windows Server 2016 Datacenter Lizenzen gekauft und wollen nun unsere ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
gelöst Frage von 137006Windows 715 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...

Firewall
Wesyb Offline
Frage von DkuehlbornFirewall14 Kommentare

Hallo Kollegen, ein Kunde hat von Wesyb die Sicherheitslösung im Einsatz. Seit August scheint deren Internetseite nicht mehr verfügbar ...