【发布时间】:2021-07-23 03:54:28
【问题描述】:
我有一个简单的批处理写入 C:\Program Files (x86)\Data\ori.csv 文件以下信息:部门,发起人名称
@echo off
CHOICE /C NS /M "Please Choose Division:"
echo.
if errorlevel 1 set division=A8-NN
if errorlevel 2 set division=A8-NS
:PROMPT
set /P ori= "Add %division% Originator? [(Y)=yes / (N)=No] "
IF /I "%ori%" NEQ "N" goto add (
) else (
goto exit
)
:add
set /p oriname= "Please Enter %division% Originator Name "
echo Division %division% Originator %oriname% has been Sucessfully added
echo %division%,%oriname% >>C:\%programfiles(x86)%\data\Ori.csv
echo.
goto prompt
:exit
pause
csv 的输出为例如
A8-NN,Chris
A8-NN,Alfredo
A8-NS,Joe
A8-NN,Patrick
A8-NS,Ann
etc
此 .csv 的数据将每 2 个月更改一次,用于部门(每个部门分配的新人员)
我的问题是我想在 ori.csv 文件中的一个单独的批处理文件中读取数据,并为特定的部门使用选择命令来选择一个发起者
到目前为止,我已经这样做了:
CHOICE /C NS /M "Please Choose Division:"
echo.
if errorlevel 1 set division=A8-NN
if errorlevel 2 set division=A8-NS
count=
for /f "tokens=1-20* delims=," %%a in ('type "C:\%programfiles(x86)%\data\Ori.csv"') do (
if %%a== ("%division%)
set b = %%b
set "count=!count!+1"
echo %count% %%b
)
)
我尝试在 %count% 变量中存储数字标识符,在 %b 变量中存储发起者名称。如何使用这两个变量作为选择命令的输入?
【问题讨论】:
-
您缺少一个左括号来打开
IF命令的命令块。也不要在SET命令中使用空格。您创建了一个名为b[space]的变量,其值为[space]value。
标签: csv batch-file batch-processing choice