批处理中从文本文件读参数,如果参数在一行上,且有固定的分隔符号,可以用for /f "tokens=1,2,3 delims=, " %%i in (filename) do (.....) 来取参数,如果参数是一行一个,取起来就比较麻烦了。
基本思路还是用for语句来处理,每一行遍历的时把内容赋给一个环境变量,刚开做的时候因为没有使用环境变量延迟加载,在循环体内变量的值不变(具体原因可以参见前一篇文章),使用延时加载后就解决了这个问题。
下面的脚本是从一个user.txt文件中读取两行内容,第一行是用户名,第二行是密码,读出来后放到环境变量%user% %pass%中,代码如下:
@echo off
cmd /v:on
set v=1
for /f %%i in (user.txt) do (
if !v!==1 (
set user=%%i
set v=2
)else set pass=%%i
)
echo %user%
echo %pass%