starsoul
Goto Top

Via Batch in CSV Datei erste Zeile löschen und eine Spalte kopieren

Hallo nochmal,

ich bin absoluter Anfänger in Batch, hab aber die Forums Suchfunktion sowie Google benutzt aber noch immer nichts Passendes gefunden - sorry.

Problemstellung:

Ich habe eine .csv Datei in der ich die erste Zeile ersetzen und dann die zweite Spalte duplizieren muß. Das mit dem Erste Zeile ersetzen hab ich bereits im Forum gefunden und es funktioniert auch prima. Leider hab ich nichts gefunden wie ich eine vorhandene Spalte kopieren und als neue Spalte wieder in selbige Datei einfügen kann.

Beispiel:

blablablalblalb blablabl balblabl
015901;1;0/0
018030;0;46/2011
018035;1;0/0
018512;1;0/0

Hier der Code der die erste Zeile mit meinen Spaltenüberschriften ersetzt:

REM Spaltennamen in Datei bestand.csv schreiben in die erste Zeile (ersetzen) mittels temporärer Datei
(echo ART_NO;VERFUEG;TERMIN;VERFUEG2)>bestand-temp.csv && type bestand.csv|more +1>>bestand-temp.csv && move /y bestand-temp.csv bestand.csv

Von der Reihenfolge her muß ich ja, da die erste Zeile keine Delimeter aufweist, zuerst die erste Zeile löschen, dann die Spalte kopieren und dann die neue erste Zeile hinzufügen.
Ich hab das hier im Forum gefunden zum Löschen der ersten Zeile aber es funktioniert nicht face-sad
for /f "tokens=1,* delims=; %%a in (bestand.csv) do call :zeile %%a  
goto :ende

:zeile
set /a i+= 1
if %i% gtr 1 echo %* >> %datei%.new
GOTO :eof

:ende
ren %datei% %datei%.bak
ren %datei%.new %datei%

Was das Duplizieren der zweiten Spalte angeht hab ich garnichts gefunden. Wahrscheinlich auch wieder was mit
for /f token *,2 ... 
aber ich schaffs nicht. Kann mir hier bitte jemand helfen? Auch und ich hab nirgends im Internet eine vernünftige Anleitung zu Batch gefunden (z.B. delim war nirgends erklärt) - Vielen Dank schonmal. Scheint ne sehr kompetente Community zu sein.

Content-ID: 175298

Url: https://administrator.de/contentid/175298

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

Skyemugen
Skyemugen 26.10.2011 um 12:32:27 Uhr
Goto Top
Aloha,

nun, da du ja schon selbst am rumpfuschen bist face-wink, glaube ich, dass du irgendwie unseren geliebten Tutorial zur FOR-Schleife nicht wirklich dir genauer angesehen hast ... schade eigentlich

Wohin soll die zweite Spalte eigentlich dupliziert werden? Ans Ende oder mitten rein (und wenn ja, wo genau)?

greetz André

P.S.: Mahlzeit erstmal Mittag

P.P.S.: Alles lustig blaue sind links face-wink
Starsoul
Starsoul 26.10.2011 um 13:03:11 Uhr
Goto Top
Hallo,

sorry die Kategorie hab ich echt übersehen face-smile Die Spalte kann egal wo liegen. Am Besten einfach rechts als neue Spalte anhängen.

Ich finde, irgendwo fehlt ein Artikel in dem die Grundlagen erklärt werden. Mag sein, daß ich den auch übersehen habe...

Vielen Dank schonmal im Voraus.
Skyemugen
Skyemugen 26.10.2011 um 13:28:00 Uhr
Goto Top
... einige links wurden wohl nie angeklickt ... wie verschiebe ich einen Beitrag ...

Nunja, eigentlich haben wir so viele Anleitungen, da kann man etwas garnicht nicht finden face-wink

Aber gut ..
@echo off & setlocal
set "orig=E:\Skripte\test.csv"  
set "datei=E:\Skripte\test_neu.csv"  
>"%datei%" echo ART_NO;VERFUEG;TERMIN;VERFUEG2  
for /f "tokens=1,2,* delims=;" %%s in ('type "%orig%"^|more +1') do >>"%datei%" echo %%s;%%t;%%u;%%t  

Man kann natürlich auch per temp-Zeugs und move das Neue zum Alten machen, wie man will ...

greetz André
Starsoul
Starsoul 26.10.2011 um 14:46:03 Uhr
Goto Top
Mensch vielen Dank! Bist ein "Coding Gott"

Ich versprech Dir, ich werd das Tutorial zur FOR Schleife durcharbeiten bis ichs kann! face-smile
Biber
Biber 26.10.2011 um 20:16:15 Uhr
Goto Top
Moin, du Sternenseelchen,

Zitat von @Starsoul:
Ich versprech Dir, ich werd das Tutorial zur FOR Schleife durcharbeiten bis ichs kann! face-smile
Könntest du zusätzlich oder meinetwegen alternativ zu diesem Projekt
  • den Beitrag von "Windows oder was" nach "Batch & Shell" verschieben?
  • einen Himbeer-für-Farbenblinde-farbenen Haken an den Beitrag setzen?

Danke
Biber