标题: [文本处理] 批处理如何获取注册表键值并替换ini文件中的相应字符串? [打印本页]
作者: vhfeng 时间: 2011-1-20 01:28 标题: 批处理如何获取注册表键值并替换ini文件中的相应字符串?
如何实现如下功能的批处理。还请各位多多指教。
1、先判断网络通了没有,通了向下执行,没通退出批处理。
2、获取本机IP和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\2
项下的ServiceName的键值。
3、用本机的IP和ServiceName的键值替换Setting.ini中的红色部分(Setting.ini中有多行ADAPTER_NAME和
MY_IP 值)
ADAPTER_NAME={3A5CB3A1-807D-4CCF-B5D1-FA5CB3E3E7B5}
MY_IP=192.168.0.242
作者: hanyeguxing 时间: 2011-1-20 12:19
- @echo off
- set "s=Setting.ini"
- ping -n 1 >www.baidu.com>nul 2>nul||exit
- for /f "tokens=3* delims=. " %%a in ('Ipconfig^|find /i "ip address"') do set ip=%%b
- for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\2" /v ServiceName') do set n=%%a
- (for /f "usebackq eol=# tokens=1* delims==" %%a in ("%s%") do (
- set "b=%%b"&set "a=%%a"
- setlocal enableDelayedExpansion
- if /i "%%a"=="ADAPTER_NAME" set b=%n%
- if /i "%%a"=="MY_IP" set b=%ip%
- if defined b (echo !a!=!b!) else (
- if "!a:~0,1!!a:~-1!"=="[]" (echo !a!) else echo !a!=
- )
- Endlocal
- ))>temp.h
- move temp.h "%s%"
复制代码
[ 本帖最后由 hanyeguxing 于 2011-1-21 02:38 编辑 ]
作者: vhfeng 时间: 2011-1-20 22:58 标题: 回复 2楼 的帖子
多谢版主老大。只是运行批处理后Setting.ini中有的等号没有了。
像下面的
OTHER_PORT= 运行后变成 OTHER_PORT
MY_PORT= 运行后变成 MY_PORT
COMMENT= 运行后变成 COMMENT
[ 本帖最后由 vhfeng 于 2011-1-21 01:04 编辑 ]
作者: hanyeguxing 时间: 2011-1-21 02:38 标题: 回复 3楼 的帖子
已修改。。。。。。
作者: vhfeng 时间: 2011-1-21 16:16 标题: 回复 4楼 的帖子
版主老大,现在的很完美。非常感谢。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |