【发布时间】:2013-07-04 14:50:44
【问题描述】:
这是我的第一个批处理程序,我一直在网上搜索,但仍在努力编写解决方案。
我有以下 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)
- 如果 column1 = "SH",则提取 column4 值 (LQ3SUEEWPWKL6)
并将输出通过管道传输到文件。
这是我目前的代码,但 if 条件对我不起作用
@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
【问题讨论】:
-
你尝试了什么?你走了多远?
-
这是我目前所拥有的,但“如果”条件对我不起作用。
-
你的意思是
IF "%_var1%"=="RH" echo %_var2%吗?我没有看到var2(即没有前面的“_”)。 -
这里的
tokens=1-18是什么意思?
标签: windows csv for-loop batch-file cmd