![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 12:10 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何用批处理读取.ini文件的一个值,并将其设为变量? |
| 可打印版本 1,033 / 10 |
| 第1楼 sglxy | 发表于 2008-01-28 07:47 |
| 中级用户 发帖 87 积分 397 | |
|
如何用批处理读取.ini文件的一个值,并将其设为变量? 如题,如何用批处理读取.ini文件的一个值,并将其设为变量使用?
我这个疑问已经好久了,一直没有找到合适的方法。请各位朋友指点迷津。谢谢!其文本文件(.ini)内容如下: ....... ...... ..... ISTIPOPENFILEDLG=1 ISAUTO=0 HOTKEY_GETMSG=2|112 SOUND_ISOPEN=1 NICKNAME=张 三 PATH=D:\飞鸽传书(懒QQ版)2.0\LanQQ\ LASTSAVE_PATH= ********************** 1、如果我需要在一个批处理中读取这个文件,并将其中的 “NICKNAME=张 三” 字段读出并设为: set NICKNAME=张 三 另外: 将“PATH=D:\飞鸽传书(懒QQ版)2.0\LanQQ\”字段读出设为:set LanQQ=D:\飞鸽传书(懒QQ版)2.0\LanQQ\ 用FOR /F 命令该如何实现? 2、我用 type config.ini|find "NICKNAME=" /V /i> tmp.txt 命令得到的tmp.txt文本中没有包含“NICKNAME" 这行的内容,那用find命令如何才能在tmp.txt中只得到“NICKNAME=张 三” 这行字符,而没有其他内容呢? 以上疑问请朋友们给予指点,先谢谢了! [ Last edited by sglxy on 2008-1-28 at 06:35 PM ] |
|
| 第2楼 zh159 | 发表于 2008-01-28 11:02 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
/V
看看 find/? -_-||| |
|
| 第3楼 junchen2 | 发表于 2008-01-28 11:34 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
findstr "NICKNAME=" config.ini
|
|
| 第4楼 sglxy | 发表于 2008-01-28 18:40 |
| 中级用户 发帖 87 积分 397 | |
|
谢谢楼上的两位朋友,我第二条关于Find的问题搞明白了,原来是我将Find命令没整清楚。谢谢了!
第一条关于用FOR命令直接读出该位置字符串,并设置为变量的方法如何做,请朋友们再提示一下,谢谢。 |
|
| 第5楼 chenall | 发表于 2008-01-29 01:10 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
多查找一下论坛之前的贴子,有类似的.
for /f "usebackq tokens=1* delims==" %%i in (`findstr /i "NICKNAME" config.ini`) do set "NICKNAME=%%j" |
|
| 第6楼 sglxy | 发表于 2008-01-31 23:01 |
| 中级用户 发帖 87 积分 397 | |
|
谢谢chenall朋友,但是这个命令行没有起作用,我只是将它稍微改了一下:
for /f "usebackq tokens=1* delims==" %%i in ('findstr /i "NICKNAME" config.ini') do echo.%%j>NAME.txt 请帮我看看那块不对了?谢谢! |
|
| 第7楼 3742668 | 发表于 2008-01-31 23:46 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
不要随便更改path变量的值,可能导致某些外部命令无法正常执行。
|
|
| 第8楼 exzzz | 发表于 2008-02-01 15:27 |
| 初级用户 发帖 167 积分 194 | |
|
如果你的CONFIG.INI中每一行都是很标准的 XX = YY的样子,干脆简单点
for /f "delims==" %%a in (config.ini) do set %%a 避免使用一些系统自带的变量,你可以在cmd下输入set查看哪些是系统自带变量. 如果说是搜寻指定的字符,并set,可以这样 for /f "delims==" %%a in (findstr "变量名" config.ini) do set 变量名=%%a 然后你set就可以看到一个名字为 "变量名" 的变量了. 需要的话,我可以吧我最近几天写的一个批处理给你看看, 是用来修改 IP\掩码\网关\DNS\计算机名\计算机描述的东西, 因为我是帮中移动做维护的,所以分门别类的有一些PC要设置参数.就自己写了一个 里面还附带了一个批处理,是用来根据本机配置生成模板ini文件的,用起来还可以,你可以自行修改参数实验一下 http://exzzz.ik8.com/mybat.rar 以上链接一周内一有效 |
|
| 第9楼 exzzz | 发表于 2008-02-01 15:30 |
| 初级用户 发帖 167 积分 194 | |
|
如果有什么需要交流的,可以 email给我,我少有时间上论坛的
exzzz@163.com |
|
| 第10楼 sglxy | 发表于 2008-02-03 18:27 |
| 中级用户 发帖 87 积分 397 | |
|
谢谢3742668 和 exzzz朋友的热心帮助,尤其是exzzz朋友的批处理文件我看后更是受益非浅。希望以后还能得到你的指点,再次感谢。
[ Last edited by sglxy on 2008-2-3 at 06:35 PM ] |
|
| 第11楼 qq43142691 | 发表于 2008-02-03 22:07 |
| 中级用户 发帖 152 积分 326 | |
|
ini内容为 ftpbakname=批处理备份 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |