我有一个如下所示的 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
但这似乎不起作用。任何指点将不胜感激,提前感谢!
以下内容对我有用 - 使用您问题中的示例文件。根据该文件,用户输入的数字仅存在一次,并且后面紧跟着一个逗号 (
,
)。
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
中包含用户输入的数字的行。参考以下内容: