Board logo

标题: [系统相关] [已解决]bat代码,如何避免,如果运行多次,会向boot.ini文件里添加多次? [打印本页]

作者: ygqiang    时间: 2015-1-8 11:54     标题: [已解决]bat代码,如何避免,如果运行多次,会向boot.ini文件里添加多次?

本帖最后由 ygqiang 于 2015-1-8 17:00 编辑

[已解决]bat代码,如何避免,如果运行多次,会向boot.ini文件里添加多次?
因为boot.ini里面,可能还有别的启动选项。所以不能删除/不能替换。只能向里面添加项目。
  1. set timeout=3
  2. if exist c:\boot.ini goto ntldr
  3. exit
  4. :ntldr
  5. bootcfg /timeout %timeout% >nul 2>nul
  6. attrib -s -r -h c:\boot.ini
  7. echo. >>c:\boot.ini
  8. echo C:\wzldr="WDOS工具箱" >>c:\boot.ini
  9. echo C:\WXPE\PELOAD=通用 PE 工具箱 >>c:\boot.ini
  10. attrib +s +r +h c:\boot.ini
复制代码

作者: ygqiang    时间: 2015-1-8 12:04

本帖最后由 ygqiang 于 2015-1-8 12:07 编辑
  1. type C:\boot.ini | find /i "WDOS工具箱" && type C:\boot.ini | find /i "通用 PE 工具箱" && goto :eof
  2. 或者?
  3. 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
  1. findstr /i /r "WDOS工具箱" "c:\boot.ini"
  2. set "aa=%errorlevel%"
  3. if "%aa%" neq "0" (echo C:\wzldr="WDOS工具箱">>"c:\boot.ini")
  4. findstr /i /r /c:"通用 PE 工具箱" "c:\boot.ini"
  5. set "bb=%errorlevel%"
  6. if "%bb%" neq "0" (echo C:\WXPE\PELOAD="通用 PE 工具箱">>"c:\boot.ini")
复制代码

作者: tmplinshi    时间: 2015-1-8 16:41

  1. ( findstr /i "WDOS工具箱" c:\boot.ini || findstr /i /c:"通用 PE 工具箱" c:\boot.ini ) >nul && goto :EOF
复制代码
或者
  1. findstr /i /c:"WDOS工具箱" /c:"通用 PE 工具箱" c:\boot.ini >nul && goto :EOF
复制代码
关于 findstr,需要注意以下几点:

作者: ygqiang    时间: 2015-1-8 16:59

或者关于 findstr,需要注意以下几点:

  • findstr 默认是使用 /r 参数的,即将搜索字符作为正则表达式。 ...
    tmplinshi 发表于 2015-1-8 16:41



  •     多谢了。。。

    问题解决了。。
    1. findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
    2. findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
    复制代码





    欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2