中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 02:05
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何批处理修改这个值 (红色部分)
可打印版本  734 / 9
第1楼 eech 发表于 2007-06-21 08:32
高级用户 发帖 346 积分 906
如何批处理修改这个值 (红色部分)
X:\boot.ini内容如下


timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

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 ]
第2楼 zasxcdfv 发表于 2007-06-21 09:30
初级用户 发帖 75 积分 152
系统根目录是%systemdrive%
不知你说的是不是这个?
第3楼 eech 发表于 2007-06-21 09:40
高级用户 发帖 346 积分 906
具体怎么写呢?
第4楼 zasxcdfv 发表于 2007-06-21 09:53
初级用户 发帖 75 积分 152
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 ]
第5楼 eech 发表于 2007-06-21 10:36
高级用户 发帖 346 积分 906
不行,“存在同名文件````````”
第6楼 eech 发表于 2007-06-21 10:38
高级用户 发帖 346 积分 906
比如说吧,1.txt,内容如下:
aaaaaaaaa
safdds 88

可以用批处理只修改“88”吗?给个格式
第7楼 zasxcdfv 发表于 2007-06-21 10:41
初级用户 发帖 75 积分 152
Originally posted by eech at 2007-6-21 10:36 AM:
不行,“存在同名文件````````”

attrib 那里多加一个 -r试试(readonly)
可能是这里导致无法删除boot.ini把
第8楼 zasxcdfv 发表于 2007-06-21 10:44
初级用户 发帖 75 积分 152
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
第9楼 eech 发表于 2007-06-21 10:57
高级用户 发帖 346 积分 906
不是删除,重建一个文件
第10楼 zasxcdfv 发表于 2007-06-21 11:03
初级用户 发帖 75 积分 152
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

还不够清楚吗?
算了,还是等其他人来看把
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023