@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q426111659.txt"
:: get first line
SET /p line=<"%filename1%"
:: remove all spaces, commas and semicolons
SET "line=%line: =%"
SET "line=%line:,=%"
SET "line=%line:;=%"
:: convert all pipes to spaces and count
SET /a count=0
FOR %%a IN (%line:|= %) DO SET /a count+=1
ECHO %count% columns IN file
GOTO :EOF
Sie müssten die Einstellung von sourcedir
ändern, um Ihre anpassen Umstände.
Ich habe eine Datei mit dem Namen q426111659.txt
mit einigen Dummy-Daten für meine Tests verwendet.
Lesen Sie die erste Zeile der Datei in line
.
Ersetzen Sie alle Leerzeichen, Kommata und Semikola in der Zeile mit nichts. Theoretisch müssten Sie Tab auch ersetzen müssen - die Formel set "varname=%varname:replacethis=withthis%"
Schließlich ist jedes Rohr mit einem Leerzeichen ersetzen und die sich ergebende Anzahl von Token zählen.
Es würde uns helfen, hatten wir Details der Eingabedateien. Sind auch die Anzahl der Spalten in jeder Zeile gleich? _Lesen nur in der ersten Zeile ist besser als das Lesen von all_. – Compo