中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-23 05:43
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么读取配置文件的指定行的数据给变量赋值? 查看 899 回复 6
楼 主 怎么读取配置文件的指定行的数据给变量赋值? 发表于 2009-01-19 11:48 ·  中国 湖北 武汉 电信
初级用户
积分 40
发帖 17
注册 2008-08-27 16:32
17年会员
UID 124308
性别 男
状态 离线
自己写了一个批处理,现在是手工修改变量的参数。
想做一个配置文件,通过批处理将参数赋值给变量,怎么处理比较好?
最好能有外部工具,因为配置文件很长,用for的话会很臃肿..........
谢谢了先
2 发表于 2009-01-19 11:53 ·  中国 广东 深圳 福田区 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
用for不会臃肿吧?

配置文件里面每一行都是需要设置的变量么?
3 发表于 2009-01-19 11:58 ·  中国 湖北 武汉 电信
初级用户
积分 40
发帖 17
注册 2008-08-27 16:32
17年会员
UID 124308
性别 男
状态 离线
不是每一行都是参数......
4 发表于 2009-01-19 12:10 ·  中国 广东 深圳 福田区 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
如果文件不涉及机密,建议贴上来作为附件,然后列明要求,不然看的人会一头雾水的。。。
5 取文件指定行 发表于 2009-01-19 12:23 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
call :sub
...
...
goto :eof
:sub
for /f "skip=行数" %%a in ('文件') do (set var=%%a&goto :eof)
::这样可以取一行


set n=1
for /f "skip=行数" %%a in ('文件') do (set /a n+=1&set var!n!=%%a&if !n!=4 goto :eof)
::这样可以取指定行后的连续4行



另外如果有多行:如1 55 88 1223...需要处理,
可以先把相应的行存成变量,set /a n+=1&if !n!==55 set "_var!n!=%%a"
再for /f %%a in ('set _var') do (进行操作...)
或 !_var55! !_var88! !_var1223!就是指定行的内容了

[ Last edited by netbenton on 2009-1-19 at 12:42 ]
精简
=> 个人网志
6 发表于 2009-01-19 12:23 ·  中国 湖北 武汉 电信
初级用户
积分 40
发帖 17
注册 2008-08-27 16:32
17年会员
UID 124308
性别 男
状态 离线
gawk "$3 == 34" val | gawk "/False/ {print $1,$2}" | gawk "$1 > %GeneralLowerLimit% && $1 < %GeneralUpperLimit%" | gawk -f ArithMetic.txt >> Results.txt

这个是处理程序中的一段,其中%GeneralLowerLimit%和%GeneralUpperLimit%是需要用户自己配置的参数,现在是在bat里让用户修改,我想做一个配置文本文件。

配置文件如下:
#GeneralLowerLimit
11

#GeneralUpperLimit
698
7 发表于 2009-01-19 12:46 ·  中国 湖北 武汉 电信
初级用户
积分 40
发帖 17
注册 2008-08-27 16:32
17年会员
UID 124308
性别 男
状态 离线
谢谢5L的,我去试试看
论坛跳转: