pizzasocken
Goto Top

Header bzw. erste Zeile bei zusammenfügen entfernen (Batchskript)

Hallo zusammen,

ich bin neu hier und dankbar für jede Hilfe!
Folgendes Problem stellt sich mir:

ich habe ein Batchskript geschrieben, um mehrere Textdateien zusammenzufügen:

@echo off
if exist %1 del %1
:Loop
if "%~2" neq "" type %2>>%1 & shift /2 & goto :Loop

(Aufruf in Shell: ./conjoin.bat masslist.txt 'mass.out', 'mass (2).out', 'mass (3).out', 'cmass (4).out', 'mass (5).out', 'mass (6).out', 'mass (7).out', 'mass (8).out')

die 'cmass.out' Dateien enthalten lange Zahlenfolgen mit einem jeweils einzeiligen Header. Meine Frage lautet, wie ich den Header jeder Zeile entfernen kann.

Vielen Dank schon einmal im Voraus!

Content-ID: 530670

Url: https://administrator.de/forum/header-bzw-erste-zeile-bei-zusammenfuegen-entfernen-batchskript-530670.html

Ausgedruckt am: 13.04.2025 um 02:04 Uhr

rubberman
Lösung rubberman 02.01.2020 um 18:14:05 Uhr
Goto Top
Probier mal statt
type %2>>%1
ein
more +1 <%2 >>%1

Steffen
PizzaSocken
PizzaSocken 02.01.2020 um 22:31:36 Uhr
Goto Top
Tausend Dank! Hat geklappt! (

Wobei in der shell Folgendes angezeigt wird:
' ">>" kann syntaktisch an dieser Stelle nicht verarbeitet werden. '

Ich nehme mal an das ist wegen des Endes der letzten Datei
rubberman
rubberman 02.01.2020 um 23:14:09 Uhr
Goto Top
Ändere mal die erste Zeile zu
@echo on
dann solltest du sehen wie die Kommandozeile aussieht wenn der Syntaxfehler auftaucht.

Steffen
PizzaSocken
PizzaSocken 07.01.2020 um 23:55:17 Uhr
Goto Top
Output in shell:

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if exist CMASS.csv del CMASS.csv

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell1\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell1\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell2\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell2\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell3\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell3\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell4\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell4\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell5\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell5\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell6\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell6\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell7\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell7\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell8\cmass.out" NEQ "" more +1 0<C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\shell8\cmass.out 1>>CMASS.csv & shift /2 & goto :Loop
">>" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

C:\users\se\desktop\LPJ-GUESS\crop_ncep_runs\start_conjoin>if "" neq "" more +1 < >>CMASS.csv & shift /2 & goto :Loop
rubberman
Lösung rubberman 08.01.2020 um 23:40:10 Uhr
Goto Top
Jahaha. Letzte Zeile fett unterstrichen :

if "" neq "" more +1 < >>CMASS.csv

Pfade immer schön in Anführungszeichen setzen, sollte auch dieses Problemchen lösen ...
more +1 <"%~2" >>"%~1"

Steffen
PizzaSocken
PizzaSocken 09.01.2020 um 16:50:43 Uhr
Goto Top
Ups :D Hast recht dankeschön!