标题: 如何用批处理读取.ini文件的一个值,并将其设为变量?
[打印本页]
作者: sglxy
时间: 2008-1-28 07:47
标题: 如何用批处理读取.ini文件的一个值,并将其设为变量?
如题,如何用批处理读取.ini文件的一个值,并将其设为变量使用?
我这个疑问已经好久了,一直没有找到合适的方法。请各位朋友指点迷津。谢谢!其文本文件(.ini)内容如下:
[LanQQ(V3.1)]
.......
......
.....
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 ]
作者: zh159
时间: 2008-1-28 11:02
/V
看看 find/? -_-|||
作者: junchen2
时间: 2008-1-28 11:34
findstr "NICKNAME=" config.ini
作者: sglxy
时间: 2008-1-28 18:40
谢谢楼上的两位朋友,我第二条关于Find的问题搞明白了,原来是我将Find命令没整清楚。谢谢了!
第一条关于用FOR命令直接读出该位置字符串,并设置为变量的方法如何做,请朋友们再提示一下,谢谢。
作者: chenall
时间: 2008-1-29 01:10
多查找一下论坛之前的贴子,有类似的.
for /f "usebackq tokens=1* delims==" %%i in (`findstr /i "NICKNAME" config.ini`) do set "NICKNAME=%%j"
作者: sglxy
时间: 2008-1-31 23:01
谢谢chenall朋友,但是这个命令行没有起作用,我只是将它稍微改了一下:
for /f "usebackq tokens=1* delims==" %%i in ('findstr /i "NICKNAME" config.ini') do echo.%%j>NAME.txt
请帮我看看那块不对了?谢谢!
作者: 3742668
时间: 2008-1-31 23:46
不要随便更改path变量的值,可能导致某些外部命令无法正常执行。
@echo off
set NewPath=%path%
for /f "delims=" %%i in (test.txt) do set "%%i">nul 2>nul
echo NICKNAME=%NICKNAME%
echo path=%path%
set path=%NewPath%
pause
goto :eof
作者: exzzz
时间: 2008-2-1 15:27
如果你的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
以上链接一周内一有效
作者: exzzz
时间: 2008-2-1 15:30
如果有什么需要交流的,可以 email给我,我少有时间上论坛的
exzzz@163.com
作者: sglxy
时间: 2008-2-3 18:27
谢谢3742668 和 exzzz朋友的热心帮助,尤其是exzzz朋友的批处理文件我看后更是受益非浅。希望以后还能得到你的指点,再次感谢。
[
Last edited by sglxy on 2008-2-3 at 06:35 PM ]
作者: qq43142691
时间: 2008-2-3 22:07
set LiNo=1
set "Bin="
set/a LiNo-=1
for /f "delims=" %%a in ('more/e +%LiNo% ^< "%配置文件%"') do (
if not defined Bin set "Bin=%%a"
)
set %Bin%
ini内容为
ftpbakname=批处理备份