标题: [系统相关] [已解决]bat代码,如何避免,如果运行多次,会向boot.ini文件里添加多次? [打印本页]
作者: ygqiang 时间: 2015-1-8 11:54 标题: [已解决]bat代码,如何避免,如果运行多次,会向boot.ini文件里添加多次?
本帖最后由 ygqiang 于 2015-1-8 17:00 编辑
[已解决]bat代码,如何避免,如果运行多次,会向boot.ini文件里添加多次?
因为boot.ini里面,可能还有别的启动选项。所以不能删除/不能替换。只能向里面添加项目。- set timeout=3
-
- if exist c:\boot.ini goto ntldr
- exit
-
- :ntldr
-
- bootcfg /timeout %timeout% >nul 2>nul
-
- attrib -s -r -h c:\boot.ini
- echo. >>c:\boot.ini
- echo C:\wzldr="WDOS工具箱" >>c:\boot.ini
- echo C:\WXPE\PELOAD=通用 PE 工具箱 >>c:\boot.ini
- attrib +s +r +h c:\boot.ini
复制代码
作者: ygqiang 时间: 2015-1-8 12:04
本帖最后由 ygqiang 于 2015-1-8 12:07 编辑
- type C:\boot.ini | find /i "WDOS工具箱" && type C:\boot.ini | find /i "通用 PE 工具箱" && goto :eof
-
- 或者?
- findstr /i /r "WDOS工具箱" c:\boot.ini && findstr /i /r "通用 PE 工具箱" c:\boot.ini && goto :EOF
复制代码
如果ini文件里面,这2个启动项目,只有其中1个,如何修改代码?
作者: pcl_test 时间: 2015-1-8 16:33
本帖最后由 pcl_test 于 2015-1-8 16:35 编辑
回复 1# ygqiang
- findstr /i /r "WDOS工具箱" "c:\boot.ini"
- set "aa=%errorlevel%"
- if "%aa%" neq "0" (echo C:\wzldr="WDOS工具箱">>"c:\boot.ini")
- findstr /i /r /c:"通用 PE 工具箱" "c:\boot.ini"
- set "bb=%errorlevel%"
- if "%bb%" neq "0" (echo C:\WXPE\PELOAD="通用 PE 工具箱">>"c:\boot.ini")
复制代码
作者: tmplinshi 时间: 2015-1-8 16:41
- ( findstr /i "WDOS工具箱" c:\boot.ini || findstr /i /c:"通用 PE 工具箱" c:\boot.ini ) >nul && goto :EOF
复制代码
或者- findstr /i /c:"WDOS工具箱" /c:"通用 PE 工具箱" c:\boot.ini >nul && goto :EOF
复制代码
关于 findstr,需要注意以下几点:
- findstr 默认是使用 /r 参数的,即将搜索字符作为正则表达式。(用 /C 或者 /L 参数则是非正则搜索)
- 如果要搜索的字符串包含了空格,应该使用 /C 参数,不然空格会将字符串分割成多个关键字。
作者: ygqiang 时间: 2015-1-8 16:59
或者关于 findstr,需要注意以下几点:
findstr 默认是使用 /r 参数的,即将搜索字符作为正则表达式。 ...
tmplinshi 发表于 2015-1-8 16:41
多谢了。。。
问题解决了。。- findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
- findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |