[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
使用前备份原文件及测试!
  1. set id=87654321
  2. sed -i "s/\(COUNTER_NO=\).*$/\1%id%/" "d:\mis.ini"
复制代码
本论坛下载三方工具sed.exe
如无特别说明,代码测试环境均为 XP SP3

TOP

各台机子单独运行?还是服务器分发?
若各机运行是靠什么区分,是IP还是MAC?
若服务器分发是直接分发ini,还是分发bat后各机自动运行?
  1. ::根据IP更改配置文件中ID
  2. @echo off
  3. setlocal enableDelayedExpansion
  4. set ip1=192.168.1.20
  5. set ip2=192.168.1.19
  6. set ip3=192.168.1.18
  7. set ip4=192.168.1.17
  8. set ip5=192.168.1.16
  9. set ip6=192.168.1.15
  10. set ip7=192.168.1.14
  11. set ip8=192.168.1.13
  12. set ip9=192.168.1.12
  13. set ip10=192.168.1.11
  14. set "id1=12863768"
  15. set "id2=12863767"
  16. set "id3=12863766"
  17. set "id4=12863765"
  18. set "id5=12863764"
  19. set "id6=12863763"
  20. set "id7=12863762"
  21. set "id8=12863761"
  22. set "id9=12863760"
  23. set "id10=12863759"
  24. ::识别IP
  25. call :getIP pcip
  26. ::set "pcip=192.168.1.18" ::假设
  27. ::更改ID
  28. for /l %%i in (1,1,10)do (
  29. if "%pcip%"=="!ip%%i!" (
  30. sed -i "s/\(COUNTER_NO=\).*$/\1!id%%i!/" "d:\mis.ini"
  31. goto :outfor
  32. )
  33. )
  34. :outfor
  35. pause
  36. goto :eof
  37. :getIP gip 获取IP
  38. 请搜索相应“获取IP”代码
  39. goto :eof
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

如果有ftp服务器可考虑:
-----------------------------------------------------------
条件:一、ftp服务器、客户机用固定ip;
二、下载三方sed/wget到系统目录,如%windir%!

步骤:一、ip-id对应表文件保存在ftp服务器上;
二、下载sed.exe和wget.exe两个三方程序,存入%windir%;
三、(先测试,正常后加到启动项里)每台机子上添加bat开机启动;
四、客户机开机运行bat,下载对应表。自动识别ip,根据ip修改id。
如无特别说明,代码测试环境均为 XP SP3

TOP

mis-id.ini  //ip-id对照表,存放在ftp服务器上。路径、名称均可修改,但更改后bat中下载处相应也要更改。
  1. #IP ID
  2. #-----------------------
  3. 192.168.1.11 12863768
  4. 192.168.1.12    12863767
  5. 192.168.1.13 12863766
  6. 192.168.1.14 12863765
  7. 192.168.1.15 12863764
  8. 192.168.1.16 12863763
  9. 192.168.1.17 12863762
  10. 192.168.1.18 12863761
  11. 192.168.1.19 12863760
  12. 192.168.1.20 12863759
  13. #=======================
复制代码
内容调整:IP、ID均按实际情况填入。IP在第一列,ID在第二列!

ip-id.bat
  1. ::根据IP更改配置文件中ID //用到三方sed.exe;wget.exe
  2. ::先得到本机IP,再从ftp服务器上取得IP-ID对照表,后修改配置文件中ID。
  3. @echo off
  4. cd/d%~dp0
  5. ::识别本机IP
  6. call :getIP pcip
  7. echo [%pcip%]
  8. ::pause
  9. ::从服务器ftp获取ip-id对应表
  10. wget -q -N "ftp://user:password@192.168.1.200/mis-id.ini"
  11. ::pause
  12. ::更改ID
  13. for /f "tokens=1,2" %%c in ('findstr /c:"%pcip%" mis-id.ini')do (
  14. if "%%c"=="%pcip%" sed -i "s/\(COUNTER_NO=\).*$/\1%%d/" "d:\mis.ini"
  15. )
  16. ::pause
  17. goto :eof
  18. ::====完====
  19. :getIP gip 获取本地IP
  20. setlocal
  21. for /f "tokens=3-6" %%a in ('"netsh interface dump|findstr /i "mask""')do (
  22. for %%i in ("%%a" "%%b" "%%c" "%%d")do if "%%~i" neq "" set %%i
  23. )
  24. if defined address set "ip=%address%"
  25. if defined addr set "ip=%addr%"
  26. endlocal&set "%1=%ip%"
  27. goto :eof
复制代码
代码修改:wget -q -N "ftp://user:password@192.168.1.200/mis-id.ini"
user                                //ftp账户名
password                        //ftp密码
192.168.1.200                //ftp服务器IP
如果ip-id对照表文件mis-id.ini也改了名或路径,这里相应也要修改!

测试步骤:一、先测获取ip是否正常;
二、测试下载mis-id.ini是否成功;
三、最后看看配置文件D:\mis.ini中ID是否更换到位。
如无特别说明,代码测试环境均为 XP SP3

TOP

返回列表