中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]怎么使用批处理修改 Boot.ini 中启动项的参数
« [1] [2] [3] »
作者:
标题: [已结]怎么使用批处理修改 Boot.ini 中启动项的参数 上一主题 | 下一主题
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by willsort at 2006-6-11 16:54:
:: ModBoot.cmd - V3 - Modify of boot.ini
:: Will Sort - 2006-6-11 - CMD@WinXP
@echo off
if not exist boot.ini echo Not found boot.ini!&goto :eof
if exist %temp%\boot.new del /f /a %temp%\boot.new
find/i "/kernel=" boot.ini>nul && echo Modified boot.ini! && goto :eof
for /f "delims=" %%l in (boot.ini) do (
    echo.%%l | find/i "/fastdetect" >nul && echo %%l /kernel=kernel.exe || echo %%l
)>>%temp%\boot.new
find/i "/kernel" %temp%\boot.new>nul 2>nul
if errorlevel 1 echo Fail to parse boot.ini!&goto :eof
attrib -s -h -r boot.ini
copy boot.ini %temp%\boot.bak>nul&&echo Pass to backup boot.ini.
copy %temp%\boot.new boot.ini>nul 2>nul
find/i "/kernel" boot.ini>nul 2>nul
if not errorlevel 1 echo Pass to wrtie boot.ini.
if errorlevel 1 copy %temp%\boot.bak boot.ini>nul & echo Fail to wrtie boot.ini!
attrib +s +h +r boot.ini
del %temp%\boot.new & del %temp%\boot.bak


  看了一下willsort兄写的代码,写得的确不错,但是对里面的某一个语句难免会感到质疑,特别是"copy %temp%\boot.new boot.ini>nul 2>nul"这一句。

  不难看出,以上willsort兄写的批处理要在系统盘根目录中运行,而这段代码中并没有删除"boot.ini"文件的语句,但是后面的这句让我感到质疑:"copy %temp%\boot.new boot.ini>nul 2>nul",这里会把"%temp%\boot.new" copy 到当前的工作目录中来,也就是 copy 到系统盘的根目录中来,并且将文件名改为"boot.ini",而此时系统盘的根目录里面已经有了一个"boot.ini"文件,这时 copy 命令就要询问你是否改写原来的"boot.ini"文件,而willsort兄只是简单的在后面加上">nul 2>nul"这个屏蔽的语句,这样一来,系统就好象死锁在一种询问的状态,当然CMD窗口并没有任何的提示。这显然没有达到我们的目的,结果显然是 copy 失败了。

  以上只是我对willsort兄所写的批处理里面的一条语句的一点小小的质疑,如果小弟有什么地方弄错了,还请大伙及willsort兄见谅。


[ Last edited by lxmxn on 2006-10-29 at 02:13 AM ]

2006-10-29 02:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by maotao at 2006-6-10 21:15:

我也翻阅了 Bootcfg 的帮助,确实没有添加自定义开关的选项。

XP 下最简单的方式:
bootcfg /raw  "/Kernel=Kernel.exe " /id 1



bootcfg /raw:以字符串形式在 Boot.ini 文件的 [operating systems] 区段中向操作系统项添加指定的操作系统加载项。

/id 1: 指定在 Boot.ini 文件的 [operating systems]区段内要更新的操作系统项的行号。[operating systems] 标题区域后的首行是 1。

"/Kernel=Kernel.exe ":??????

呵呵!

[ Last edited by 0451lym on 2006-10-31 at 10:56 AM ]

2006-10-31 10:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chen004
新手上路





积分 2
发帖 1
注册 2006-2-9
状态 离线
『第 18 楼』:  高手

我可看不懂??????????

2006-10-31 21:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maotao
初级用户





积分 44
发帖 14
注册 2006-6-7
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by 0451lym at 2006-10-31 10:44:




XP 下最简单的方式:
bootcfg /raw  "/Kernel=Kernel.exe " /id 1



bootcfg /raw:以字符串形式在 Boot.ini 文件的 [operating systems] 区段中向操作系统顠...

这样似乎不行吧,你再到 Boot.ini 中看看,该系统菜单项原来的一些开关项是不是没了?

2006-11-1 08:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 20 楼』:  



  Quote:
Originally posted by maotao at 2006-11-1 08:38:

这样似乎不行吧,你再到 Boot.ini 中看看,该系统菜单项原来的一些开关项是不是没了?

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

D:\Documents and Settings\Administrator>bootcfg /raw  "/Kernel=Kernel.exe " /id1
成功: 在 Boot.ini 文件中的操作系统项目"1"上添加了开关。

D:\Documents and Settings\Administrator>c







我的BOOT.INI更改为:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="☆我的办公系统☆"  /kernel=kernel.exe
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="★我的备用系统★" /noexecute=optin /fastdetect
C:\grldr="我的镜像恢复系统 → 06金秋版!"

2006-11-1 20:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 21 楼』:  

刚看明白你的意思,你这样弄:
bootcfg /raw  "/noexecute=optin /fastdetect/Kernel=Kernel.exe " /id 1

“”中的开关多少都可以,把想要得加全了就可以了!

D:\Documents and Settings\Administrator>bootcfg /raw  "/noexecute=optin /fastdet
ect/Kernel=Kernel.exe " /id 1
成功: 在 Boot.ini 文件中的操作系统项目"1"上添加了开关。

D:\Documents and Settings\Administrator>

我的BOOT.INI更改为:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="☆我的办公系统☆"   /noexecute=optin /fastdetect/kernel=kernel.exe
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="★我的备用系统★" /noexecute=optin /fastdetect
C:\grldr="我的镜像恢复系统 → 06金秋版!"

2006-11-1 20:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maotao
初级用户





积分 44
发帖 14
注册 2006-6-7
状态 离线
『第 22 楼』:  



  Quote:
Originally posted by 0451lym at 2006-11-1 20:25:
刚看明白你的意思,你这样弄:
bootcfg /raw  "/noexecute=optin /fastdetect/Kernel=Kernel.exe " /id 1

“”中的开关多少都可以,把想要得加全了就可以了..

这样是没有问题了,不过还得先了解原先的一些开关才可以这样的,假如原来的参数不是这样,。。。

2006-11-1 21:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 23 楼』:  



  Quote:
Originally posted by maotao at 2006-11-1 21:03:

这样是没有问题了,不过还得先了解原先的一些开关才可以这样的,假如原来的参数不是这样,。。。

XP默认的开关就是那几个,没必要把许多垃圾开关都加上吧?
问题简单的好,不要复杂!

2006-11-1 23:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 24 楼』:  

  maotao 是想把系统盘改造成个性化的,XP的默认设置并不能满足个性化需求——高手一般都喜欢DIY的,也没有几个高手在使用MS的原版安装光盘。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-1 23:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
newaifi
初级用户





积分 154
发帖 67
注册 2006-10-31
状态 离线
『第 25 楼』:  

收益非浅.. 本人在此也不再赘述了..

2006-11-2 01:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 26 楼』:  

这个对偶也有用,先收了,再轻轻地顶一下.

2006-11-5 02:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jasonwang
初级用户





积分 122
发帖 54
注册 2006-11-3
状态 离线
『第 27 楼』:  

17楼说的对,不过如何判断是ID1?似乎加上一些批处理似乎为好。

2006-11-9 02:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
different
初级用户





积分 48
发帖 20
注册 2005-10-14
状态 离线
『第 28 楼』:  将楼主的问题逆向,如何做?

我现在想使用批处理找到里面的

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /execute /fastdetect /Kernel=Kernel.exe

这一行,并且能够在这行的末尾减少字符串,比如修改成

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /execute /fastdetect


也想只用XP系统自带的功能,不用外部工具。

2007-1-15 16:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wanyu555
初级用户





积分 22
发帖 9
注册 2007-1-16
状态 离线
『第 29 楼』:  

各位大大实在是太帅了

2007-1-17 12:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
gocndos
新手上路





积分 8
发帖 4
注册 2007-1-15
状态 离线
『第 30 楼』:  

学习下

2007-1-21 01:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: