![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 09:40 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何读出多个选项的设定值再赋给变量 |
| 可打印版本 649 / 5 |
| 第1楼 merryzhao | 发表于 2009-02-16 11:02 |
| 新手上路 发帖 9 积分 9 | |
|
如何读出多个选项的设定值再赋给变量 有一个如下格式的.txt文件(共6项):
Name=zhoulei Age=12 Grade=six ... 想用批处理将这些选项的设定值分别读出,即: set var1=zhoulei set var2=12 set var3=six ... 再做进一步处理。 我查看批处理的帮助,觉得应该用批处理For命令,但不知该如何实现。 希望大家指点,谢谢! |
|
| 第2楼 pooronce | 发表于 2009-02-16 11:09 |
| 中级用户 发帖 250 积分 484 | |
|
@setlocal enabledelayedexpansion
for /f "tokens=2 delims==" %%i in (如下格式的.txt) do ( set /a nb+=1 set var!nb!=%%i ) echo %var1% echo %var2% ... |
|
| 第3楼 merryzhao | 发表于 2009-02-16 12:15 |
| 新手上路 发帖 9 积分 9 | |
|
谢谢pooronce的帮助!
1. set var!nb!=%%i 我查了一下只找到批处理符号有:. >> > < & && | || ^ * % @ ,所以请问符号!的作用? 2.由于提问时的疏忽,我漏掉2个应注意的问题,原.txt文件为分两部: (第一部分, ;后为注释) Name=zhoulei ;姓名 Age=12 ;年龄 Grade=six :年级 ... (第二部分,以下为老师对zhoulei 的评语) ... 请问如何在pooronce方法的基础上,如何只取出zhoulei,12等信息,忽略掉注释及第二部分的评语。 |
|
| 第4楼 pooronce | 发表于 2009-02-16 13:31 |
| 中级用户 发帖 250 积分 484 | |
|
for /f "tokens=2 delims== " %%i in (如下格式的.txt) do (
多加一个空格(或再多一个TAB符),就能把后面断开了 !在这里是延迟之后替代%取变量值的 到cmd下看看帮助吧: setlocal /? |
|
| 第5楼 merryzhao | 发表于 2009-02-16 22:53 |
| 新手上路 发帖 9 积分 9 | |
|
pooronce的方法很好,谢谢!!!
不过,在使用中还发现一个问题: 如果有某一项没有数据,则会将下一项的数据读到本项,导致后面所有选项提前一项, 例如: Name=zhoulei Age=12 Award= Grade=six Sex=M ... 经批处理读取后,为: var1=zhoulei var2=12 var3=six ;第三项本为空 var4=M ;第四项本为six var5= ;第五项本为M ... 另: 在帮助setlocal /?下并没有符号!的说明。 谢谢! |
|
| 第6楼 HAT | 发表于 2009-02-17 11:42 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 5楼 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |