标题: [文本处理] 云更新无盘系统怎么实现农行微信程序修改INI文件里的ID 想做个批处理 [打印本页]
作者: jld95810 时间: 2021-2-25 13:45 标题: 云更新无盘系统怎么实现农行微信程序修改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盘下面
作者: Batcher 时间: 2021-2-25 14:09
回复 1# jld95810
12863768修改成什么?
另外9台机器的这个数字分别修改成什么?
作者: cutebe 时间: 2021-2-25 18:02
使用前备份原文件及测试!- set id=87654321
- sed -i "s/\(COUNTER_NO=\).*$/\1%id%/" "d:\mis.ini"
复制代码
本论坛下载三方工具sed.exe
作者: jld95810 时间: 2021-2-26 21:35
12863768,下个机子就是12863767或者12863766农行一共给了10个号,前面12863是不变的
作者: jld95810 时间: 2021-2-26 21:37
这10号都是固定的
作者: jld95810 时间: 2021-2-26 21:42
大哥能写个完整的,我不太会
作者: Batcher 时间: 2021-2-26 21:51
回复 4# jld95810
同一个bat脚本需要在10个不同的机器上运行吗?还是在同一个机器上运行生产10个不同的ini文件?
作者: cutebe 时间: 2021-2-27 10:25
各台机子单独运行?还是服务器分发?
若各机运行是靠什么区分,是IP还是MAC?
若服务器分发是直接分发ini,还是分发bat后各机自动运行?- ::根据IP更改配置文件中ID
- @echo off
- setlocal enableDelayedExpansion
-
- set ip1=192.168.1.20
- set ip2=192.168.1.19
- set ip3=192.168.1.18
- set ip4=192.168.1.17
- set ip5=192.168.1.16
- set ip6=192.168.1.15
- set ip7=192.168.1.14
- set ip8=192.168.1.13
- set ip9=192.168.1.12
- set ip10=192.168.1.11
- set "id1=12863768"
- set "id2=12863767"
- set "id3=12863766"
- set "id4=12863765"
- set "id5=12863764"
- set "id6=12863763"
- set "id7=12863762"
- set "id8=12863761"
- set "id9=12863760"
- set "id10=12863759"
-
- ::识别IP
- call :getIP pcip
- ::set "pcip=192.168.1.18" ::假设
-
- ::更改ID
- for /l %%i in (1,1,10)do (
- if "%pcip%"=="!ip%%i!" (
- sed -i "s/\(COUNTER_NO=\).*$/\1!id%%i!/" "d:\mis.ini"
- goto :outfor
- )
- )
- :outfor
-
- pause
- goto :eof
-
- :getIP gip 获取IP
- 请搜索相应“获取IP”代码
- goto :eof
复制代码
作者: jld95810 时间: 2021-2-27 11:44
是10号在10台机子分别运行,一台机子一个号,你看看怎么写,服务器也行,客户端运行也,最好一开机自动识别这个每个机子的自的号
作者: jld95810 时间: 2021-2-27 11:46
最好通过ip和mac来识别
作者: jld95810 时间: 2021-2-27 11:47
客户机一起启动自动运行来识别
作者: flashercs 时间: 2021-2-27 15:46
脚本保存为 a.vbs- Option Explicit
- On Error Resume Next
-
- Const conINI = "D:\mis.ini" 'ini路径
- Const conNIC = "vEthernet (Default Switch)" '网卡名
- Const ForReading = 1, ForWriting = 2, ForAppending = 8
-
- Dim objWbemServices,fso,tsr,tsw,Element,dicNIC_ININO,mac,str
- Set dicNIC_ININO = CreateObject("Scripting.Dictionary")
- ' MAC地址对应COUNTER_NO
- dicNIC_ININO.Add "00:15:5D:62:F7:80","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"
-
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set objWbemServices = GetObject("winmgmts:{ImpersonationLevel=Impersonate}!//./root/cimv2")
- For Each Element In objWbemServices.ExecQuery("Select NetConnectionID,MACAddress From Win32_NetworkAdapter Where NetConnectionID = '" & conNIC & "'")
- mac = Element.MACAddress
- Next
- ' WScript.Echo "mac='" & mac & "'"
- If dicNIC_ININO.Exists(mac) Then
- Set tsr = fso.OpenTextFile(conINI,ForReading,False,vbUseDefault) ' ANSI encoding
- str = tsr.ReadAll
- If Err.Number <> 0 Then MyQuit
- Set tsw = fso.OpenTextFile(conINI,ForWriting,False,vbUseDefault) ' ANSI encoding
- If Err.Number <> 0 Then MyQuit
- With New RegExp
- .Global = False
- .Ignorecase = True
- .Multiline = False
- .Pattern = "(COUNTER_NO\s*=\s*).*"
- tsw.Write(.Replace(str,"$1" & dicNIC_ININO.Item(mac)))
- End With
- End If
-
- MyQuit
-
- Sub MyQuit()
- On Error Resume Next
- If IsObject(tsw) Then
- tsw.Close
- Set tsw = Nothing
- End If
- If IsObject(tsr) Then
- tsr.Close
- Set tsr = Nothing
- End If
- Set fso = Nothing
- set dicNIC_ININO = Nothing
- Set objWbemServices = Nothing
- WScript.Quit
- End Sub
复制代码
作者: jld95810 时间: 2021-2-27 16:49
大哥直接放到启动项就可以了吧!!!好想启动没有反应,我把我的MAC地址换上去了
作者: cutebe 时间: 2021-2-27 18:01
如果有ftp服务器可考虑:
-----------------------------------------------------------
条件:一、ftp服务器、客户机用固定ip;
二、下载三方sed/wget到系统目录,如%windir%!
步骤:一、ip-id对应表文件保存在ftp服务器上;
二、下载sed.exe和wget.exe两个三方程序,存入%windir%;
三、(先测试,正常后加到启动项里)每台机子上添加bat开机启动;
四、客户机开机运行bat,下载对应表。自动识别ip,根据ip修改id。
作者: flashercs 时间: 2021-2-27 18:47
回复 13# jld95810
把你改后的内容贴出来。MAC地址要大写
作者: jld95810 时间: 2021-2-28 12:34
4C:CC:6A:42:A5:EC 我就修改了一个机子
作者: jld95810 时间: 2021-2-28 12:36
我双击 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"
就修改了第一行
作者: flashercs 时间: 2021-2-28 13:27
回复 17# jld95810
请修改ini路径,网卡名和MAC地址;否则脚本无效。
作者: cutebe 时间: 2021-2-28 14:11
mis-id.ini //ip-id对照表,存放在ftp服务器上。路径、名称均可修改,但更改后bat中下载处相应也要更改。- #IP ID
- #-----------------------
- 192.168.1.11 12863768
- 192.168.1.12 12863767
- 192.168.1.13 12863766
- 192.168.1.14 12863765
- 192.168.1.15 12863764
- 192.168.1.16 12863763
- 192.168.1.17 12863762
- 192.168.1.18 12863761
- 192.168.1.19 12863760
- 192.168.1.20 12863759
- #=======================
复制代码
内容调整:IP、ID均按实际情况填入。IP在第一列,ID在第二列!
ip-id.bat- ::根据IP更改配置文件中ID //用到三方sed.exe;wget.exe
- ::先得到本机IP,再从ftp服务器上取得IP-ID对照表,后修改配置文件中ID。
- @echo off
- cd/d%~dp0
-
- ::识别本机IP
- call :getIP pcip
- echo [%pcip%]
- ::pause
-
- ::从服务器ftp获取ip-id对应表
- wget -q -N "ftp://user:password@192.168.1.200/mis-id.ini"
- ::pause
-
- ::更改ID
- for /f "tokens=1,2" %%c in ('findstr /c:"%pcip%" mis-id.ini')do (
- if "%%c"=="%pcip%" sed -i "s/\(COUNTER_NO=\).*$/\1%%d/" "d:\mis.ini"
- )
- ::pause
- goto :eof
- ::====完====
-
- :getIP gip 获取本地IP
- setlocal
- for /f "tokens=3-6" %%a in ('"netsh interface dump|findstr /i "mask""')do (
- for %%i in ("%%a" "%%b" "%%c" "%%d")do if "%%~i" neq "" set %%i
- )
- if defined address set "ip=%address%"
- if defined addr set "ip=%addr%"
- endlocal&set "%1=%ip%"
- 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是否更换到位。
作者: jld95810 时间: 2021-3-3 11:35
大哥你看看我修改的对不对,我测试不行
作者: 1073 时间: 2021-3-3 23:59
这是干什么的程序
作者: xczxczxcz 时间: 2021-3-4 15:30
描述清楚,给你弄个 ftp 上传 下载 遍历文件 查找文件
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |