[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求助修改代码:判断文件是否存在、是否含有指定字符串,以及修改文件属性

本帖最后由 pcl_test 于 2016-8-12 14:22 编辑

源代码部分:
1存在boot.ini文件,文件内没有"c:\grldr="Start GRUB4DOS"这行,则在末尾追加。

2有c:\grldr="Start GRUB4DOS"这行不做任何操作  
                                          
3不存在boot.ini文件,就新建此文件                              
[boot loader]
[operating systems]
c:\grldr="Start GRUB4DOS"
================================================================
待添加修改部分:
1.存在boot.ini文件时:
  就备份。
  去除只读属性,timeout=0这行值改为5,修改默认属性+r +s +h +a。
  复制 grldr与menu.lst到boot.ini同目录
3.不存在boot.ini文件时:
  修改属性+r +s +h +a
  1. @echo off & setlocal EnableDelayedExpansion
  2. set "file=%systemdrive%\boot.ini"
  3. if exist "%file%" (
  4.     (for /f "delims=" %%a in ('type "%file%"') do (
  5.         set "str=%%a"
  6.         set "str=!str:"=!"
  7.         if /I "!str!"=="c:\grldr=Start GRUB4DOS" set a=1
  8.         echo,%%a
  9.     ))>tmp
  10.     if !a! neq 1 (
  11.         >>tmp echo,c:\grldr="Start GRUB4DOS"
  12.         move tmp "%file%"
  13.     )
  14. ) else (
  15.   (  
  16.     echo,[boot loader]
  17.     echo,[operating systems]
  18.     echo,c:\grldr="Start GRUB4DOS"
  19.   )>"%file%"
  20. )
复制代码
1

评分人数

  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set "file=%systemdrive%\boot.ini"
  4. if exist "%file%" (
  5.     (for /f "delims=" %%a in ('type "%file%"') do (
  6.         set "str=%%a"
  7.         set "str=!str:"=!"
  8.         if /I "!str!"=="c:\grldr=Start GRUB4DOS" set a=1
  9.         if "!str!"=="timeout=0" (
  10.             echo timeout=5
  11.         ) else (
  12.             echo,%%a
  13.         )
  14.     ))>tmp
  15.     if !a! neq 1 (
  16.         >>tmp echo,c:\grldr="Start GRUB4DOS"
  17.         attrib -r -s -h -a "%file%"
  18.         move tmp "%file%"
  19.         attrib +r +s +h +a "%file%"
  20.     )
  21. ) else (
  22.     (  
  23.         echo,[boot loader]
  24.         echo,[operating systems]
  25.         echo,c:\grldr="Start GRUB4DOS"
  26.     )>"%file%"
  27.     attrib +r +s +h +a "%file%"
  28. )
复制代码
1

评分人数

TOP

本帖最后由 xixin 于 2016-8-12 21:17 编辑

回复 2# GNU


感谢pcl_test修改了标题,这么快得到GNU的帮助,由于太小白了setlocal EnableDelayedExpansion这些部分看了晕半天.
还有两点能否帮忙添加上,存在boot.ini文件时1.先备份.2.复制 grldr与menu.lst到boot.ini同目录(boot.ini存在或不存在阶段都复制)谢谢.谢谢

TOP

回复 3# xixin


备份的操作比较简单,你自己加上试试看。
  1. copy /y boot.ini boot.ini.bak
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表