Board logo

标题: 修改ini中的变量值?十万火急!!!! [打印本页]

作者: chhoco     时间: 2007-9-28 12:15    标题: 修改ini中的变量值?十万火急!!!!

把A.ini中的Database     =test 修改成 下面三项其中的一项, Database初始值不能确定(不一定是=test), 行数能确定,值是唯一的

Database     =hgsoft
Database     =tools
Database     =test


其实是一个软件的数据库连接参数来的,有三个数据库名,我想做三个批处理,放在桌面,分别三个批处理,连接三不同的数据库名!



A.ini  内容如下======================================


[Database]
DBNUM        =1
DBMS          =MSS
Database     =test
ServerName =
Logid       =
Logpass   =
[User]
User1      =;
User2      =;
User3      =;
User4      =;
User5      =;

还有大概50行左右,这里我省略了。。。。。。。
..................................................................

==============================================
作者: wudixin96     时间: 2007-9-28 13:06
sed "/Database/ s/^Database.*$/Database     =hgsoft/" a.ini
作者: chhoco     时间: 2007-9-28 15:58
sed 不是外部命令或其它。。。。。。

运行不通过啊,老大,怎么办好?
作者: 26933062     时间: 2007-9-28 16:17
行数确定,也就是说都是改第4行吧.
@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.ini') do (
if "%%a"=="4" (echo Database     =hgsoft) else echo.%%b
)
pause

作者: wudixin96     时间: 2007-9-28 16:26

@echo off
:top
cls
echo ============================================
echo.
echo       1.修改为:Database     =hgsoft
echo.
echo       2.修改为:Database     =tools
echo.
echo       3.修改为:Database     =test
echo.
echo =============================================
echo.
echo.
set /p num=请输入修改数字:
if %num%==1 set "data=Database     =hgsoft"&&goto rep
if %num%==2 set "data=Database     =tools"&&goto rep
if %num%==3 set "data=Database     =test"&&goto rep
echo 输入错误!请重新输入。&pause>nul&goto top

:rep
for /f "tokens=1* delims=:" %%i in ('findstr /n .* a.ini') do (
  if "%%i"=="4" (call echo %%data%%>>a_tmp.ini) else (echo.%%j>>a_tmp.ini)
)
del /q a.ini
ren a_tmp.ini a.ini
pause
偷取楼上的,o(∩_∩)o...哈哈

[ Last edited by wudixin96 on 2007-9-28 at 04:27 PM ]
作者: chhoco     时间: 2007-9-28 16:33
5楼的朋友,你的代码全中我的意思了,太感谢你们了,

我帮VB都比较熟,到现在才发现,原来dos也还有这样的牛人,