[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何获取注册表键值并替换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

  1. @echo off
  2. set "s=Setting.ini"
  3. ping -n 1 >www.baidu.com>nul 2>nul||exit
  4. for /f "tokens=3* delims=. " %%a in ('Ipconfig^|find /i "ip address"') do set ip=%%b
  5. for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\2" /v ServiceName') do set n=%%a
  6. (for /f "usebackq eol=# tokens=1* delims==" %%a in ("%s%") do (
  7.         set "b=%%b"&set "a=%%a"
  8.         setlocal enableDelayedExpansion
  9.         if /i "%%a"=="ADAPTER_NAME" set b=%n%
  10.         if /i "%%a"=="MY_IP" set b=%ip%
  11.         if defined b (echo !a!=!b!) else (
  12.                 if "!a:~0,1!!a:~-1!"=="[]" (echo !a!) else echo !a!=
  13.         )
  14.         Endlocal
  15. ))>temp.h
  16. move temp.h "%s%"
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-21 02:38 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 2楼 的帖子

多谢版主老大。只是运行批处理后Setting.ini中有的等号没有了。
像下面的
OTHER_PORT=         运行后变成  OTHER_PORT
MY_PORT=                 运行后变成  MY_PORT
COMMENT=                运行后变成  COMMENT

[ 本帖最后由 vhfeng 于 2011-1-21 01:04 编辑 ]

TOP

回复 3楼 的帖子

已修改。。。。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 4楼 的帖子

版主老大,现在的很完美。非常感谢。

TOP

返回列表