Daten aus einer csv datei geordnet ausgeben
Daten aus einer csv datei geordnet ausgeben
Hallo Leute,
Ich habe eine Batch Datei, welche eine bestimmte zeile aus einer .csv datei ausgeben soll.
Meine Frage ist nun, wie kann ich eine geordnete ausgabe daraus machen?
Hier die Zeilenstruktur aus der .csv
Nr.;Kategorie;Bezeichnung;Hersteller;Lager-Ort;Menge
1;Protokoll;testbezeichner;IT;Lager;4Stueck
und so sollte es auf dem bildschirm ausgegeben werden
Nr. : 1
Kategorie : Protokoll
Bezeichnung : testbezeichner
Hersteller : IT
Lager-Ort : Lager
Menge : 4Stueck
Hoffe ihr könnt mir helfen
Ich habe eine Batch Datei, welche eine bestimmte zeile aus einer .csv datei ausgeben soll.
Meine Frage ist nun, wie kann ich eine geordnete ausgabe daraus machen?
Hier die Zeilenstruktur aus der .csv
Nr.;Kategorie;Bezeichnung;Hersteller;Lager-Ort;Menge
1;Protokoll;testbezeichner;IT;Lager;4Stueck
und so sollte es auf dem bildschirm ausgegeben werden
Nr. : 1
Kategorie : Protokoll
Bezeichnung : testbezeichner
Hersteller : IT
Lager-Ort : Lager
Menge : 4Stueck
Hoffe ihr könnt mir helfen
Please also mark the comments that contributed to the solution of the article
Content-Key: 178369
Url: https://administrator.de/contentid/178369
Printed on: April 26, 2024 at 09:04 o'clock
3 Comments
Latest comment
Hallo FlowBerlin und willkommen im Forum!
Du solltest erklären, wodurch die "eine bestimmte zeile aus einer .csv datei" bestimmt wird ...
... soferne es die Nr sein sollte, könnte ein Batch etwa so aussehen:
Hinweis: Bei diesem Ansatz darf In den Daten kein "!" oder zB Leerzeichen vorkommen ...
Grüße
bastla
Du solltest erklären, wodurch die "eine bestimmte zeile aus einer .csv datei" bestimmt wird ...
... soferne es die Nr sein sollte, könnte ein Batch etwa so aussehen:
@echo off & setlocal enabledelayedexpansion
set "CSV=D:\Daten.csv"
set "Nr=1"
set /a Feld=1
set /p Felder=<"%CSV%"
for %%i in (%Felder%) do (
set "Feldname!Feld!=%%i"
set /a Feld+=1
)
set /a Feld=1
for /f "delims=" %%a in ('findstr /b "%Nr%;" "%CSV%"') do (
for %%i in (%%a) do (
call echo %%Feldname!Feld!%%: %%i
set /a Feld+=1
)
)
Grüße
bastla
Hallo FlowBerlin!
Das Einlesen selbst erfolgt per "Eingabeumleitung" - mit
kann so die erste Zeile (und nur diese) einer Textdatei in eine Variable übernommen werden.
Grüße
bastla
Mir ist noch unklar bei deiner Lösung, wie ich die " Nr.;Kategorie;Bezeichnung;Hersteller;Lager-Ort;Menge " im gegensatz zu den daten einlese.
Entsprechend Deines Musters stehen die Feldnamen in der ersten Zeile der Datei - diese wird in Zeile 6 des Batches in die Variable %Felder% eingelesen und in den folgenden Zeilen 7 bis 10 aufgeteilt und den Variablen %Feldname1% bis %Feldname6% (siehe Zähler %Feld%) zugewiesen.Das Einlesen selbst erfolgt per "Eingabeumleitung" - mit
set /p Felder=<Datei
Grüße
bastla