Windows-batch-Skript zu Parsen von CSV-Datei und Ausgabe einer text-Datei

Ich habe gesehen, eine Antwort auf einer anderen Seite (Hilfe bei schreiben einer batch-Skript zu Parsen von CSV-Datei und Ausgabe einer text-Datei) - brilliant-code BTW:

@ECHO OFF
IF "%~1"=="" GOTO :EOF
SET "filename=%~1"
SET fcount=0
SET linenum=0
FOR /F "usebackq tokens=1-10 delims=," %%a IN ("%filename%") DO ^
CALL :process "%%a" "%%b" "%%c" "%%d" "%%e" "%%f" "%%g" "%%h" "%%i" "%%j"
GOTO :EOF

:trim
SET "tmp=%~1"
:trimlead
IF NOT "%tmp:~0,1%"==" " GOTO :EOF
SET "tmp=%tmp:~1%"
GOTO trimlead

:process
SET /A linenum+=1
IF "%linenum%"=="1" GOTO picknames

SET ind=0
:display
IF "%fcount%"=="%ind%" (ECHO.&GOTO :EOF)
SET /A ind+=1
CALL :trim %1
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !f%ind%!!tmp!
ENDLOCAL
SHIFT
GOTO display

:picknames
IF %1=="" GOTO :EOF
CALL :trim %1
SET /a fcount+=1
SET "f%fcount%=%tmp%"
SHIFT
GOTO picknames

Es funktioniert hervorragend ein Beispiel für eine csv-Datei, die ich in dem format:

Header,Name,Place
one,two,three
four,five,six

Aber die eigentliche Datei, die ich ändern wollen, besteht aus 64 Feldern, also veränderte ich die tokens=1-10 zu tokens=1-64 und erhöht die %%a etc bis zu 64 Variablen (die Letzte wird genannt %%BL zum Beispiel). Jetzt, jedoch, wenn ich den Stapel auf meinem "großen" csv-Datei (mit der 64-Token) passiert nichts. Keine Fehler (gut) aber keine Ausgabe! (schlecht). Wenn jemand helfen kann, wäre das fantastisch... bin soooo kurz davor den ganzen app arbeiten, wenn ich einfach Nagel-das Letzte Stück! Oder wenn jemand einige Beispiel-code, der tun wird, ähnlich wie die für eine unbestimmte Anzahl von Token... Letztendlich möchte ich ein string sein wird, so wie:

field7,field12,field15,field18
Meine 2cents wäre die Umsetzung, die in keiner anderen Sprache (viele Bibliotheken gibt, parse csv-s), anstatt zu tun, das im batch.
ja, ich möchte auch, aber leider ist es gotta run auf 12 Jahre alten pc mit embedded Windows, und haben eine kleine Stellfläche 🙁
Autsch. Das ist einfach nicht richtig.
🙂 yeah! Konnte nicht überzeugen, Sie zu aktualisieren, wenn! Ich bin überrascht, Sie können sogar als Kassen, geschweige denn, was ich Tue 🙂
Warten Sie eine minute, ist nicht die VB6-runtime nur 1 dll? Mit, dass, vbscript und VB6 code funktionieren würde, und haben eine relativ kleine Stellfläche.

InformationsquelleAutor Jeff Webb | 2011-12-15

Schreibe einen Kommentar