中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 23:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 修改ini中的变量值?十万火急!!!! 查看 1,076 回复 5
楼 主 修改ini中的变量值?十万火急!!!! 发表于 2007-09-28 12:15 ·  中国 广东 湛江 电信
新手上路
积分 8
发帖 3
注册 2007-09-28 11:03
18年会员
UID 98466
性别 男
状态 离线
把A.ini中的Database =test 修改成 下面三项其中的一项, Database初始值不能确定(不一定是=test), 行数能确定,值是唯一的

Database =hgsoft
Database =tools
Database =test


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



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



DBNUM =1
DBMS =MSS
Database =test
ServerName =
Logid =
Logpass =

User1 =;
User2 =;
User3 =;
User4 =;
User5 =;

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

==============================================
2 发表于 2007-09-28 13:06 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
sed "/Database/ s/^Database.*$/Database =hgsoft/" a.ini
3 发表于 2007-09-28 15:58 ·  中国 广东 湛江 电信
新手上路
积分 8
发帖 3
注册 2007-09-28 11:03
18年会员
UID 98466
性别 男
状态 离线
sed 不是外部命令或其它。。。。。。

运行不通过啊,老大,怎么办好?
4 发表于 2007-09-28 16:17 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
行数确定,也就是说都是改第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
致精致简!
5 发表于 2007-09-28 16:26 ·  中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
@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 ]
6 发表于 2007-09-28 16:33 ·  中国 广东 湛江 电信
新手上路
积分 8
发帖 3
注册 2007-09-28 11:03
18年会员
UID 98466
性别 男
状态 离线
5楼的朋友,你的代码全中我的意思了,太感谢你们了,

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