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

[文本处理] 云更新无盘系统怎么实现农行微信程序修改INI文件里的ID 想做个批处理

款台号
COUNTER_NO=12863768
STRUCT_TYPE=01
RESP_ENCRYPTPAN=1
LIST_COUNT=20
SALELIST=1
SILENCERUN=0
LOGINLIST=0
VOIDLIST=1
PRINTLIST=1
REFUNDLIST=1
UNIONPAYFLAG=0
修改里面的这个12863768,我这里一共10台机子每个机子的号都不一样 。大家帮帮忙  谢谢大哥们了
mis.ini这个文件在D盘下面

回复 1# jld95810


12863768修改成什么?
另外9台机器的这个数字分别修改成什么?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

使用前备份原文件及测试!
  1. set id=87654321
  2. sed -i "s/\(COUNTER_NO=\).*$/\1%id%/" "d:\mis.ini"
复制代码
本论坛下载三方工具sed.exe
如无特别说明,代码测试环境均为 XP SP3

TOP

12863768,下个机子就是12863767或者12863766农行一共给了10个号,前面12863是不变的

TOP

这10号都是固定的

TOP

大哥能写个完整的,我不太会

TOP

回复 4# jld95810


    同一个bat脚本需要在10个不同的机器上运行吗?还是在同一个机器上运行生产10个不同的ini文件?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

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

是10号在10台机子分别运行,一台机子一个号,你看看怎么写,服务器也行,客户端运行也,最好一开机自动识别这个每个机子的自的号

TOP

最好通过ip和mac来识别

TOP

客户机一起启动自动运行来识别

TOP

脚本保存为 a.vbs
  1. Option Explicit
  2. On Error Resume Next
  3. Const conINI = "D:\mis.ini" 'ini路径
  4. Const conNIC = "vEthernet (Default Switch)" '网卡名
  5. Const ForReading = 1, ForWriting = 2, ForAppending = 8
  6. Dim objWbemServices,fso,tsr,tsw,Element,dicNIC_ININO,mac,str
  7. Set dicNIC_ININO = CreateObject("Scripting.Dictionary")
  8. ' MAC地址对应COUNTER_NO
  9. dicNIC_ININO.Add "00:15:5D:62:F7:80","12863768"
  10. dicNIC_ININO.Add "00:15:5D:62:F7:90","12863767"
  11. dicNIC_ININO.Add "00:15:5D:62:F7:72","12863765"
  12. dicNIC_ININO.Add "00:15:5D:62:F7:42","12863764"
  13. dicNIC_ININO.Add "00:15:5D:62:F7:32","12863763"
  14. dicNIC_ININO.Add "00:15:5D:62:F7:02","12863762"
  15. dicNIC_ININO.Add "00:15:5D:62:F7:12","12863761"
  16. dicNIC_ININO.Add "00:15:5D:62:F7:96","12863759"
  17. dicNIC_ININO.Add "00:15:5D:62:F7:98","12863758"
  18. dicNIC_ININO.Add "00:15:5D:62:F7:66","12863757"
  19. Set fso = CreateObject("Scripting.FileSystemObject")
  20. Set objWbemServices = GetObject("winmgmts:{ImpersonationLevel=Impersonate}!//./root/cimv2")
  21. For Each Element In objWbemServices.ExecQuery("Select NetConnectionID,MACAddress From Win32_NetworkAdapter Where NetConnectionID = '" & conNIC & "'")
  22.   mac = Element.MACAddress
  23. Next
  24. ' WScript.Echo "mac='" & mac & "'"
  25. If dicNIC_ININO.Exists(mac) Then
  26.   Set tsr = fso.OpenTextFile(conINI,ForReading,False,vbUseDefault) ' ANSI encoding
  27.   str = tsr.ReadAll
  28.   If Err.Number <> 0 Then MyQuit
  29.   Set tsw = fso.OpenTextFile(conINI,ForWriting,False,vbUseDefault) ' ANSI encoding
  30.   If Err.Number <> 0 Then MyQuit
  31.   With New RegExp
  32.     .Global = False
  33.     .Ignorecase = True
  34.     .Multiline = False
  35.     .Pattern = "(COUNTER_NO\s*=\s*).*"
  36.     tsw.Write(.Replace(str,"$1" & dicNIC_ININO.Item(mac)))
  37.   End With
  38. End If
  39. MyQuit
  40. Sub MyQuit()
  41.   On Error Resume Next
  42.   If IsObject(tsw) Then
  43.     tsw.Close
  44.     Set tsw = Nothing
  45.   End If
  46.   If IsObject(tsr) Then
  47.     tsr.Close
  48.     Set tsr = Nothing
  49.   End If
  50.   Set fso = Nothing
  51.   set dicNIC_ININO = Nothing
  52.   Set objWbemServices = Nothing
  53.   WScript.Quit
  54. End Sub
复制代码
微信:flashercs
QQ:49908356

TOP

大哥直接放到启动项就可以了吧!!!好想启动没有反应,我把我的MAC地址换上去了

TOP

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

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

TOP

回复 13# jld95810


    把你改后的内容贴出来。MAC地址要大写
微信:flashercs
QQ:49908356

TOP

返回列表