我有一个简单的批处理,要将以下信息写入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变量存储发起者的名字,我如何使用这两个变量作为choice命令的输入呢?
1条答案
按热度按时间qybjjes11#
你需要一个稍微不同的方法。在评论中做了一些澄清之后......我建议你在这里转向
set /p
,仅仅是因为我们永远不知道会有多少选择,你说最多20个,但明天突然有27个,然后呢?所以我宁愿安全而不是抱歉:)