使用批处理在 csv 文件中查找特定值

问题描述 投票:0回答:1

我有一个如下所示的 data.csv 文件:

1,a
2,b
3,c
4,d
5,e

我需要创建一个批处理文件,您在其中输入一个数字,它会检索此 csv 文件中该行的下一列中的值。例如,如果您输入“3”,脚本将输出“c”。

我认为第一步是使用 SET /P 将输入定义为变量,然后使用该变量通过简单数组查找输出:

@echo off
SET /P variable=Enter a number 
FOR /F "delims=," %variable IN data.csv DO @echo %%b
PAUSE

但这似乎不起作用。任何指点将不胜感激,提前感谢!

batch-file
1个回答
0
投票

以下内容对我有用 - 使用您问题中的示例文件。根据该文件,用户输入的数字仅存在一次,并且后面紧跟着一个逗号 (

,
)。

SET /P variable=Enter a number
FOR /F "tokens=* USEBACKQ" %%F IN (`findstr "%variable%" data.csv`) DO (SET str=%%F)
CALL SET result=%%str:%variable%,=%%
echo %result%
  • findstr
    返回文件
    data.csv
    中包含用户输入的数字的行。
  • 找到的行存储在str
  • 结果包含发现的行中逗号后面的部分

参考以下内容:

© www.soinside.com 2019 - 2024. All rights reserved.