使用批处理读取csv文件以创建用户

时间:2015-05-12 14:54:33

标签: loops csv batch-file windows-server-2008

我是一名IT学生。我试图在我的Windows Server 2008虚拟机中创建用户,虽然这应该是一个更好的方法,使它们一个接一个地制作它,然后我发现我可以用数据库创建用户,在这种情况下csv和循环脚本。但是由于我对命令和批处理文件的知识水平低,我无法实现我的目标。这就是我在csv文件中的含义:

Pedro,12345,939293c
Juanjo,23456,213123v
Eufrasio,34567,2131312b
Dani,45678,123213n
Pepe,56789,12344v
Manolo,67891,12312567b 

这是我制作的批次,我卡在了回声的一部分,命令没有读到

SET LOCAL
@echo incio del script
set n1=
set n2=
set n3=

for /F "tokens=1,2,3* delims=," %%i in (Libro2.csv) do (
    set "n1=%%i"
    set "n2=%%j"
    set "n3=%%k"
    echo %n1 %n2 %n3
)

pause

1 个答案:

答案 0 :(得分:0)

批处理中的变量引用%var%,而非%var

但是在块中(()之间,您需要启用延迟扩展以显示当前值(如果您在块内更改它们):

setlocal enabledelayedexpansion
set x=one
if 1==1 (
  set x=two
  echo %x% !x!
)

稍微改变你的脚本:

SETLOCAL enabledelayedexpansion
@echo incio del script
set n1=
set n2=
set n3=

for /F "tokens=1,2,3 delims=," %%i in (Libro2.csv) do (
    set "n1=%%i"
    set "n2=%%j"
    set "n3=%%k"
    echo %%i %%j %%k
    echo !n1! !%n2! !%n3!
)

(注意:您可以直接使用for - 变量 - 查看块中的第一个回声)

(注意:tokens=1,2,3,*表示:对于第四个标记,请使用其余部分。您不必在此处使用它,因为您不使用%%l)< / p>