中国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中的变量值?十万火急!!!! 使用 LLM 解释/回答一下

把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行左右,这里我省略了。。。。。。。
..................................................................

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


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





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

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


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





积分 8
发帖 3
注册 2007-9-28
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

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

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


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





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

行数确定,也就是说都是改第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 楼』:   使用 LLM 解释/回答一下

@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 楼』:   使用 LLM 解释/回答一下

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

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


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

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


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



论坛跳转: