无忧启动论坛

标题: 请教一个批处理的写法 [打印本页]

作者: 一只旋转的陀螺    时间: 2010-1-25 21:35
标题: 请教一个批处理的写法
我想使用批处理修改BOOT.INI,在最后一行加入c:\grldr="GRUB4DOS",语句是
echo c:\grldr="start grub4dos">>c:\boot.ini
发现boot.ini最后没有空白行时,c:\grldr="GRUB4DOS"会加载xp菜单的后面,启动时不会出现在启动菜单中。如下:
[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 /fastdetectc:\grldr="GRUB4DOS"
请问如何才能另起一行,使c:\grldr="GRUB4DOS"加在最后一行?

[ 本帖最后由 一只旋转的陀螺 于 2010-1-25 21:36 编辑 ]
作者: 一只旋转的陀螺    时间: 2010-1-25 22:26
各位批处理高手给个建议
作者: NicTense    时间: 2010-1-25 23:33
echo. >>c:\boot.ini
echo c:\grldr="start grub4dos">>c:\boot.ini
作者: 一只旋转的陀螺    时间: 2010-1-26 09:53
标题: 回复 #3 NicTense 的帖子
多谢!问题解决。
作者: jzyjjp    时间: 2010-1-27 14:27
上述都不完美,说一下本人的:
for /f "delims=" %%i in (c:\boot.ini) do @echo %%i>>boot.bak
find /i "c:\grldr=" boot.bak>nul || echo c:\grldr="start grub4dos">>boot.bak
move/y boot.bak c:\boot.ini
上述可实现删除boot.ini文件中的空行,另外会检查该文件中是否有"c:\grldr="项,如果没有则会把该项加到boot.ini文件的末尾。
作者: x9tian    时间: 2010-2-21 20:18
原帖由 jzyjjp 于 2010-1-27 14:27 发表
上述都不完美,说一下本人的:
for /f "delims=" %%i in (c:\boot.ini) do @echo %%i>>boot.bak
find /i "c:\grldr=" boot.bak>nul || echo c:\grldr="start grub4dos">>boot.bak
move/y boot.bak c:\boot.i ...



  兄弟还有一个问题没有考虑进去, 这玩意如果不是在c盘运行 

 move /y boot.bak  c:\boot.ini   
是会失败的! 

 不同分区目录下MOVE 如果存在同名文件则只出现一个错误提示而不会改写目标!

for /f "delims=" %%i in (c:\boot.ini) do @echo %%i>>C:\boot.bak
MOVE /y c:\boot.bak c:\boo.ini
才算行

[ 本帖最后由 x9tian 于 2010-2-21 20:20 编辑 ]




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3