中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 修改ini中的变量值?十万火急!!!!
作者:
标题: 修改ini中的变量值?十万火急!!!! 上一主题 | 下一主题
chhoco
新手上路





积分 8
发帖 3
注册 2007-9-28
状态 离线
『楼 主』:  修改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行左右,这里我省略了。。。。。。。
..................................................................

==============================================

2007-9-28 12:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

sed "/Database/ s/^Database.*$/Database     =hgsoft/" a.ini

2007-9-28 13:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chhoco
新手上路





积分 8
发帖 3
注册 2007-9-28
状态 离线
『第 3 楼』:  

sed 不是外部命令或其它。。。。。。

运行不通过啊,老大,怎么办好?

2007-9-28 15:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 4 楼』:  

行数确定,也就是说都是改第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




致精致简!
2007-9-28 16:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 5 楼』:  


@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 ]

2007-9-28 16:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chhoco
新手上路





积分 8
发帖 3
注册 2007-9-28
状态 离线
『第 6 楼』:  

5楼的朋友,你的代码全中我的意思了,太感谢你们了,

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

2007-9-28 16:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: