Это моя первая пакетная программа, и я искал в Интернете, но все еще изо всех сил пытаюсь написать решение.Чтение из файла csv и извлечение определенных столбцов данных на основе значения первого столбца
У меня есть следующий CSV файл:
"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",
......
Я пытаюсь написать простую программу, чтобы сделать следующее:
- Если column1 = "RH", а затем извлечь значение COLUMN2 (2013/06/15 02:14:58 -0400)
- Если столбец1 = "SH", а затем извлечь column4 значение (LQ3SUEEWPWKL6)
и выход трубы в файл.
Это мой код до сих пор, но если условие не работает для меня
@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%
)
Мой файл CSV выглядит хорошо в Excel и блокнот, но когда я выполнить скрипт для отображения первая переменная, похоже, что некоторые символы мусора перед «RH» на первой записи - я не могу обойти ее, так как мне нужно извлечь дополнительные данные столбца, если var1 = «RH»:
"RH"
FH
01
SH
CH
TransactionID,PaymentTrackingID,
SF
SF
SC
RF
CAD,CR,0
RF
USD,CR,0
RC
FF
Что вы попробовали? Как далеко вы добрались? – dnet
Это то, что у меня есть до сих пор, но условие «если» не работает для меня. – user2550880
Вы имеете в виду 'IF '% _var1%" == "RH" echo% _var2% '? Я не вижу «var2» (т. Е. Без предшествующего «_»). – Rapnar