Lesen aus einer csv-Datei und das extrahieren bestimmter Daten-Spalten basierend auf den ersten Spaltenwert

Dies ist meine erste batch Programm und ich habe die Suche online, aber immer noch kämpfen, zu schreiben-up eine Lösung.

Habe ich folgende CSV-Datei:

"RH",2013/06/15 02:14:58 -0400,"X","LQ3SUEEWPWKL6",005,
"FH",01
"SH",2013/06/14 00:00:00 -0400,2013/06/14 23:59:59 -0400,"LQ3SUEEWPWKL6",""
"CH","TransactionID","InvoiceID", 
......

Ich versuche zu schreiben ein einfaches Programm, um Folgendes zu tun:

  • Wenn column1 = "RH", dann extrahieren spalte2 Wert (2013/06/15 02:14:58 -0400)
  • Wenn column1 = "SH", dann extrahieren column4 Wert (LQ3SUEEWPWKL6)

und pipe die Ausgabe in eine Datei.


Dies ist mein code bisher, aber die if-Bedingung wird nicht für mich arbeiten

@echo off
:: Set input file in variable
::Set _InputFile=%1

:: Store input line into different variables
FOR /F "tokens=1-18* delims=," %%A IN (%_InputFile%) DO (
Set _var1=%%A
Set _var2=%%B
Set _var3=%%C
Set _var4=%%D
Set _var5=%%E
Set _var6=%%F
Set _var7=%%G
Set _var8=%%H
Set _var9=%%I
Set _var10=%%J
Set _var11=%%K
Set _var12=%%L
Set _var13=%%M
Set _var14=%%N
Set _var15=%%O
Set _var16=%%P
Set _var17=%%Q
Set _var18=%%R


IF "%_var1%"=="RH" echo %var2%

)

Meine CSV-Datei sieht gut aus in Excel und Editor, aber wenn ich das Skript ausführen, um die Anzeige der ersten variable, es sieht aus wie es einige sinnlose Zeichen kurz vor dem "RH" auf dem ersten Album - ich kann es umgehen, da Brauch ich zu extrahieren der zusätzlichen Spalte die Daten, wenn var1 = "RH":

"RH"
FH
01
SH
CH
TransactionID,PaymentTrackingID,
SF
SF
SC
RF
CAD,CR,0
RF
USD,CR,0
RC
FF
  • Was haben Sie versucht? Wie weit bist du?
  • Dies ist, was ich habe, so weit, aber die "wenn" - Bedingung funktioniert nicht fo mich.
  • Meinst du IF "%_var1%"=="RH" echo %_var2% ? Ich sehe nicht ein var2 (d.h. ohne Vorangehende '_').
  • Was bedeutet tokens=1-18 hier bedeuten?
InformationsquelleAutor user2550880 | 2013-07-04
Schreibe einen Kommentar