标题: [文件操作] 求助修改代码:判断文件是否存在、是否含有指定字符串,以及修改文件属性 [打印本页]
作者: xixin 时间: 2016-8-12 10:25 标题: 求助修改代码:判断文件是否存在、是否含有指定字符串,以及修改文件属性
本帖最后由 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- @echo off & setlocal EnableDelayedExpansion
- set "file=%systemdrive%\boot.ini"
- if exist "%file%" (
- (for /f "delims=" %%a in ('type "%file%"') do (
- set "str=%%a"
- set "str=!str:"=!"
- if /I "!str!"=="c:\grldr=Start GRUB4DOS" set a=1
- echo,%%a
- ))>tmp
- if !a! neq 1 (
- >>tmp echo,c:\grldr="Start GRUB4DOS"
- move tmp "%file%"
- )
- ) else (
- (
- echo,[boot loader]
- echo,[operating systems]
- echo,c:\grldr="Start GRUB4DOS"
- )>"%file%"
- )
复制代码
作者: GNU 时间: 2016-8-12 13:28
- @echo off
- setlocal EnableDelayedExpansion
- set "file=%systemdrive%\boot.ini"
- if exist "%file%" (
- (for /f "delims=" %%a in ('type "%file%"') do (
- set "str=%%a"
- set "str=!str:"=!"
- if /I "!str!"=="c:\grldr=Start GRUB4DOS" set a=1
- if "!str!"=="timeout=0" (
- echo timeout=5
- ) else (
- echo,%%a
- )
- ))>tmp
- if !a! neq 1 (
- >>tmp echo,c:\grldr="Start GRUB4DOS"
- attrib -r -s -h -a "%file%"
- move tmp "%file%"
- attrib +r +s +h +a "%file%"
- )
- ) else (
- (
- echo,[boot loader]
- echo,[operating systems]
- echo,c:\grldr="Start GRUB4DOS"
- )>"%file%"
- attrib +r +s +h +a "%file%"
- )
复制代码
作者: xixin 时间: 2016-8-12 21:01
本帖最后由 xixin 于 2016-8-12 21:17 编辑
回复 2# GNU
感谢pcl_test修改了标题,这么快得到GNU的帮助,由于太小白了setlocal EnableDelayedExpansion这些部分看了晕半天.
还有两点能否帮忙添加上,存在boot.ini文件时1.先备份.2.复制 grldr与menu.lst到boot.ini同目录(boot.ini存在或不存在阶段都复制)谢谢.谢谢
作者: Batcher 时间: 2016-8-13 21:58
回复 3# xixin
备份的操作比较简单,你自己加上试试看。- copy /y boot.ini boot.ini.bak
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |