中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何批处理修改这个值 (红色部分)
作者:
标题: 如何批处理修改这个值 (红色部分) 上一主题 | 下一主题
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『楼 主』:  如何批处理修改这个值 (红色部分)

X:\boot.ini内容如下

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
-------------------------------------------------------------------------------------------------------
如果系统安装在C盘,可以这样修改(bootcfg /timeout 5),但我的系统不在C盘,用这句会报错

有没有类似%windir%的写法呢?请高人赐教!

[ Last edited by eech on 2007-6-21 at 08:44 AM ]

2007-6-21 08:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 2 楼』:  

系统根目录是%systemdrive%
不知你说的是不是这个?

2007-6-21 09:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『第 3 楼』:  

具体怎么写呢?

2007-6-21 09:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 4 楼』:  

bootcfg好像没有指定系统所在驱动器的参数,是不是需要直接对%systemdrive%\boot.ini进行修改才可以呢?
期待高手有更好的办法。

::我只能想到蠢办法……
::用法:命名为1.bat ,运行的时候加一个参数如1.bat 5 就是timeout=5
@echo off &setlocal enabledelayedexpansion
attrib -a -h -s %systemdrive%\boot.ini
::我忘记boot.ini的具体属性了,如果此处有误请调整参数,下同
for /f "tokens=*" %%a in (%systemdrive%\boot.ini) do (
set var=%%a
echo !var!> boottemp.txt
findstr "timeout" boottemp.txt
if errorlevel 1        (echo !var!>>boot2.ini) else echo timeout=%1>>%systemdrive%\boot2.ini

)
del %systemdrive%\boot.ini
rename %systemdrive%\boot2.ini boot.ini
attrib +h +a +s %systemdrive%\boot.ini
del boottemp.txt
pause

[ Last edited by zasxcdfv on 2007-6-21 at 10:24 AM ]

2007-6-21 09:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『第 5 楼』:  

不行,“存在同名文件````````”

2007-6-21 10:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『第 6 楼』:  

比如说吧,1.txt,内容如下:
aaaaaaaaa
safdds 88

可以用批处理只修改“88”吗?给个格式

2007-6-21 10:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by eech at 2007-6-21 10:36 AM:
不行,“存在同名文件````````”

attrib 那里多加一个 -r试试(readonly)
可能是这里导致无法删除boot.ini把

2007-6-21 10:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by eech at 2007-6-21 10:38 AM:
比如说吧,1.txt,内容如下:
aaaaaaaaa
safdds 88

可以用批处理只修改“88”吗?给个格式

跟上面一样的呀。只不过方法有点笨。
上面那段你把attrib那里调整一下肯定可以用。

@echo off &setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (1.txt) do (
set var=%%a
echo !var!> boottemp.txt
findstr "safdds" boottemp.txt
if errorlevel 1        (echo !var!>>1222.txt) else echo safdds %1>>%systemdrive%\1222.txt

)
del 1.txt
rename 1222.txt 1.txt
del boottemp.txt
pause

2007-6-21 10:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『第 9 楼』:  

不是删除,重建一个文件

2007-6-21 10:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by eech at 2007-6-21 10:57 AM:
不是删除,重建一个文件

del %systemdrive%\boot.ini
rename %systemdrive%\boot2.ini boot.ini
attrib +h +a +s %systemdrive%\boot.ini

还不够清楚吗?
算了,还是等其他人来看把

2007-6-21 11:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: