[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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盘下面

描述清楚,给你弄个 ftp 上传 下载 遍历文件 查找文件
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

这是干什么的程序

TOP

大哥你看看我修改的对不对,我测试不行

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

回复 17# jld95810

请修改ini路径,网卡名和MAC地址;否则脚本无效。
微信:flashercs
QQ:49908356

TOP

我双击  a.vbs  他没有反应
dicNIC_ININO.Add "4C:CC:6A:42:A5:EC","12863768"
dicNIC_ININO.Add "00:15:5D:62:F7:90","12863767"
dicNIC_ININO.Add "00:15:5D:62:F7:72","12863765"
dicNIC_ININO.Add "00:15:5D:62:F7:42","12863764"
dicNIC_ININO.Add "00:15:5D:62:F7:32","12863763"
dicNIC_ININO.Add "00:15:5D:62:F7:02","12863762"
dicNIC_ININO.Add "00:15:5D:62:F7:12","12863761"
dicNIC_ININO.Add "00:15:5D:62:F7:96","12863759"
dicNIC_ININO.Add "00:15:5D:62:F7:98","12863758"
dicNIC_ININO.Add "00:15:5D:62:F7:66","12863757"
就修改了第一行

TOP

4C:CC:6A:42:A5:EC  我就修改了一个机子

TOP

回复 13# jld95810


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

TOP

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

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

TOP

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

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

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

TOP

最好通过ip和mac来识别

TOP

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

TOP

返回列表