无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2861|回复: 6
打印 上一主题 下一主题

请教一个批处理的写法

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-25 21:35:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我想使用批处理修改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 编辑 ]
6#
发表于 2010-2-21 20:18:25 | 只看该作者
原帖由 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 编辑 ]
回复

使用道具 举报

5#
发表于 2010-1-27 14:27:16 | 只看该作者
上述都不完美,说一下本人的:
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文件的末尾。
回复

使用道具 举报

4#
 楼主| 发表于 2010-1-26 09:53:01 | 只看该作者

回复 #3 NicTense 的帖子

多谢!问题解决。
回复

使用道具 举报

3#
发表于 2010-1-25 23:33:46 | 只看该作者
echo. >>c:\boot.ini
echo c:\grldr="start grub4dos">>c:\boot.ini
回复

使用道具 举报

2#
 楼主| 发表于 2010-1-25 22:26:07 | 只看该作者
各位批处理高手给个建议
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 22:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表