|
ccccpp
新手上路
积分 17
发帖 17
注册 2008-9-14
状态 离线
|
『第
16 楼』:
谢谢,但还有误。
如cx.ini 是
a=192.168.221.233
b=173.207.16.5
c=163.202.95.128
test.ini 是
dfasdgasgasfg
ghghsghfd
<property name="ServerIP" type="string" description="店服务器">192.168.221.4</property>
dfasdfgasdga
dgasg
测试后就不能改成b的情况了,其实test.ini中的IP是不一定192开头的
|
|
2009-5-5 04:41 |
|
|
yangfengoo
初级用户
积分 47
发帖 41
注册 2009-4-24
状态 离线
|
『第
17 楼』:
把这句删掉
if "!ip:~2,7!" neq "192.168" echo 数据格式有误,请检查cx.ini。&&pause>nul&&goto start
就可以了。
|
正在学习中…… |
|
2009-5-5 04:49 |
|
|
ccccpp
新手上路
积分 17
发帖 17
注册 2008-9-14
状态 离线
|
『第
18 楼』:
还是错,
运行后选b 第一次改成功,再运行改选c
test.ini就全变了
[ Last edited by ccccpp on 2009-5-5 at 05:08 ]
|
|
2009-5-5 05:07 |
|
|
yangfengoo
初级用户
积分 47
发帖 41
注册 2009-4-24
状态 离线
|
『第
19 楼』:
不是我写的没仔细研究,
我再看一下。
|
正在学习中…… |
|
2009-5-5 05:22 |
|
|
flybird2020
初级用户
积分 103
发帖 52
注册 2007-4-13
状态 离线
|
『第
20 楼』:
Quote: | Originally posted by ccccpp at 2009-5-5 04:41 AM:
谢谢,但还有误。
如cx.ini 是
a=192.168.221.233
b=173.207.16.5
c=163.202.95.128
test.ini 是
dfasdgasgasfg
ghghsghfd
<property name="ServerIP" type="string" ... |
|
我以为你Test.ini指定的192.168.1.1,cx.ini里也是局域网的IP
问题就这两点,我上班暂时不太有时间,劳烦yangfengoo兄帮忙纠下错吧
|
|
2009-5-5 05:36 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
21 楼』:
试试
附件
1: test.rar (2009-5-5 07:11, 685 bytes,下载次数: 8)
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2009-5-5 07:11 |
|
|
yangfengoo
初级用户
积分 47
发帖 41
注册 2009-4-24
状态 离线
|
『第
22 楼』:
@echo off & setlocal EnableDelayedExpansion
echo 请确保cx.ini test.ini及本文件在同一文件夹
type cx.ini
echo.
echo 请选择
set /p m=
echo 你选择了!m! 按回车确定
pause
type cx.ini | findstr /i "!m!" >temp0.txt
for /f "tokens=*" %%a in (temp0.txt) do (
set ip=%%a
set str=!ip:~2!
)
type test.ini | findstr "店服务器" >temp1.txt
for /f "tokens=1,2* delims=>" %%i in (temp1.txt) do (
for /f "tokens=2* delims=<" %%t in ("%%j") do (
echo %%i^>%str%^<%%t^> >temp2.txt)
)
for /f "tokens=*" %%i in (TEST.INI) do set var1=%%i && for /f "tokens=*" %%s in (temp1.txt) do set var2=%%s && if "!var2!"=="!var1!" (for /f "tokens=*" %%t in (temp2.txt) do echo %%t>>new_TEST.INI) else (echo %%i>>new_TEST.INI)
cls
echo IP已修改至new_TEST.INI可以按"回车"将用new_TEST.INI覆盖原TEST.INI
pause
del temp?.txt
copy /y new_TEST.INI TEST.INI
del new_TEST.INI 看我的笨方法
|
正在学习中…… |
|
2009-5-5 07:22 |
|
|
yangfengoo
初级用户
积分 47
发帖 41
注册 2009-4-24
状态 离线
|
『第
23 楼』:
自己不把问题说清楚,害得大家忙半天。
你应该把 CX.INI TEST.INI 全部或大部分传上了。
你给的信息少又没代表性。
|
正在学习中…… |
|
2009-5-5 07:34 |
|
|
ccccpp
新手上路
积分 17
发帖 17
注册 2008-9-14
状态 离线
|
『第
24 楼』:
老师们说得对,没有上传所有,但都是看到答复才想起来的,不过第一楼中的192.168.1.1我用红色标示了,代表是一个变量(或一段字符),后来才知cx.ini中的=号还有全角半角之分,=号后还有空格和无空格的不同,实在是才疏学浅,太谢谢老师们了,明天回单位测试一下,愿成功!
|
|
2009-5-5 10:17 |
|
|
yangfengoo
初级用户
积分 47
发帖 41
注册 2009-4-24
状态 离线
|
『第
25 楼』:
::学习笔记
::疑问for /f "tokens=*" %%a in ('findstr "%m%" cx.ini') do set ip=%%a会在IP后多产生一空格
::解决我的方法 && set ip=!ip: =!替换掉空格
::解决21,22楼TEST.ini中含多个“店服务器”出错问题
::说明此方案中“店服务器”后IP必须一致否则出错,
@echo off & setlocal EnableDelayedExpansion
type cx.ini & echo.
set /p m=
for /f "tokens=*" %%a in ('findstr "%m%" cx.ini') do set ip=%%a && set ip=!ip: =!
for /f "tokens=2 delims=><" %%c in ('findstr "店服务器" TEST.ini') do set oldip=%%c
for /f "tokens=*" %%i in (TEST.INI) do (
set str=%%i
set str=!str:%oldip%=%ip:~2%!
echo !str!>>new_TEST.txt
)
del TEST.ini
ren new_TEST.txt TEST.ini
|
正在学习中…… |
|
2009-5-6 02:42 |
|
|
ccccpp
新手上路
积分 17
发帖 17
注册 2008-9-14
状态 离线
|
『第
26 楼』:
为达想想效果,写全全部参数
dpc.ini是
[loader]
port = 2308
host = 115.0.1.59
cx.ini是
a=2308
b=2309
c=2310
按ccwan例子改动 test.bat是
rem MS-DOS batch file
rem
@echo off
cls
echo ╔- -╗
echo 2308:0007,0657,8569,0138,0109
echo 2309:0656
echo 2310:0024,0658,1126,8565,8568,0607
echo ╚- -╝
Title [更改升级配置文件dpc.ini]
::批处理命令开始-----------------------------------
@echo off&setlocal enabledelayedexpansion
echo 请选择A,B or C
set /p slect=
for /f "tokens=1,2 delims==" %%a in (cx.ini) do (
if /i "%slect%"=="%%a" (
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "dpc.ini"') do (
for /f "tokens=2 delims== " %%? in ('findstr "port" dpc.ini') do (
set str=%%j
if not "!str!"=="" set "str=!str:%%?=%%b!"&>>dpc.txt echo.!str!
)
)
)
)
copy dpc.ini dpc_BAK.txt >nul 2>nul
move dpc.txt dpc.ini
start "" dpc.ini
::批处理命令结束-----------------------------------
pause::[提示按任意键结束...] 已按大虾的更改了,可成!
[ Last edited by ccccpp on 2009-5-12 at 05:32 ]
|
|
2009-5-8 03:43 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
27 楼』:
你的dpc.ini里没有><符号啊。
换成=就行了。
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2009-5-9 05:43 |
|
|
ccccpp
新手上路
积分 17
发帖 17
注册 2008-9-14
状态 离线
|
『第
28 楼』:
按ccwan大哥的方法已可以完成更改设置,如果想把dpc.ini中的"host = 115.0.1.59"一行也写成固定的,请问要添加什么代码?因为原来初始的"host = XXX.XXX.XXX.XXX"的一行是不同机器不同的,想把它写定了。谢谢
[ Last edited by ccccpp on 2009-5-12 at 05:35 ]
|
|
2009-5-12 05:30 |
|
|
ccccpp
新手上路
积分 17
发帖 17
注册 2008-9-14
状态 离线
|
『第
29 楼』:
[已结] 请教各位老师如何根据一个条件而改文件
经ccwan ,yishanju,jmz573515等几位老师指导,完成想要的功能了,谢谢!
rem MS-DOS batch file
rem
@echo off
cls
echo ╔- -╗
echo 2308:0007,0657,8569,0138,0109
echo 2309:0656
echo 2310:0024,0658,1126,8565,8568,0607
echo ╚- -╝
Title [更改升级配置文件dpc.ini]
::批处理命令开始-----------------------------------
@echo off&setlocal enabledelayedexpansion
echo 请选择A,B or C
set /p slect=
for /f "tokens=1,2 delims==" %%a in (cx.ini) do (
if /i "%slect%"=="%%a" (
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "dpc.ini"') do (
for /f "tokens=2 delims== " %%? in ('findstr "port" dpc.ini') do (
set str=%%j
if not "!str!"=="" set "str=!str:%%?=%%b!"&>>dpc.txt echo.!str!
)
)
)
)
copy dpc.ini dpc_BAK.txt >nul 2>nul
move dpc.txt dpc.ini
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%i in (dpc.ini) do (
set str=%%i
if "!str:~0,6!"=="host =" set "str=host = 115.0.1.59"
echo !str!
))>#dpc.ini
move #dpc.ini dpc.ini
start "" dpc.ini
::批处理命令结束-----------------------------------
pause::[提示按任意键结束...]
|
|
2009-5-24 03:46 |
|