Board logo

标题: 如何批处理修改这个值 (红色部分) [打印本页]

作者: eech     时间: 2007-6-21 08:32    标题: 如何批处理修改这个值 (红色部分)

X:\boot.ini内容如下

[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 /fastdetect /usepmtimer
-------------------------------------------------------------------------------------------------------
如果系统安装在C盘,可以这样修改(bootcfg /timeout 5),但我的系统不在C盘,用这句会报错

有没有类似%windir%的写法呢?请高人赐教!

[ Last edited by eech on 2007-6-21 at 08:44 AM ]
作者: zasxcdfv     时间: 2007-6-21 09:30
系统根目录是%systemdrive%
不知你说的是不是这个?
作者: eech     时间: 2007-6-21 09:40
具体怎么写呢?
作者: zasxcdfv     时间: 2007-6-21 09:53
bootcfg好像没有指定系统所在驱动器的参数,是不是需要直接对%systemdrive%\boot.ini进行修改才可以呢?
期待高手有更好的办法。

::我只能想到蠢办法……
::用法:命名为1.bat ,运行的时候加一个参数如1.bat 5 就是timeout=5
@echo off &setlocal enabledelayedexpansion
attrib -a -h -s %systemdrive%\boot.ini
::我忘记boot.ini的具体属性了,如果此处有误请调整参数,下同
for /f "tokens=*" %%a in (%systemdrive%\boot.ini) do (
set var=%%a
echo !var!> boottemp.txt
findstr "timeout" boottemp.txt
if errorlevel 1        (echo !var!>>boot2.ini) else echo timeout=%1>>%systemdrive%\boot2.ini

)
del %systemdrive%\boot.ini
rename %systemdrive%\boot2.ini boot.ini
attrib +h +a +s %systemdrive%\boot.ini
del boottemp.txt
pause

[ Last edited by zasxcdfv on 2007-6-21 at 10:24 AM ]
作者: eech     时间: 2007-6-21 10:36
不行,“存在同名文件````````”
作者: eech     时间: 2007-6-21 10:38
比如说吧,1.txt,内容如下:
aaaaaaaaa
safdds 88

可以用批处理只修改“88”吗?给个格式
作者: zasxcdfv     时间: 2007-6-21 10:41


  Quote:
Originally posted by eech at 2007-6-21 10:36 AM:
不行,“存在同名文件````````”

attrib 那里多加一个 -r试试(readonly)
可能是这里导致无法删除boot.ini把
作者: zasxcdfv     时间: 2007-6-21 10:44


  Quote:
Originally posted by eech at 2007-6-21 10:38 AM:
比如说吧,1.txt,内容如下:
aaaaaaaaa
safdds 88

可以用批处理只修改“88”吗?给个格式

跟上面一样的呀。只不过方法有点笨。
上面那段你把attrib那里调整一下肯定可以用。

@echo off &setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (1.txt) do (
set var=%%a
echo !var!> boottemp.txt
findstr "safdds" boottemp.txt
if errorlevel 1        (echo !var!>>1222.txt) else echo safdds %1>>%systemdrive%\1222.txt

)
del 1.txt
rename 1222.txt 1.txt
del boottemp.txt
pause
作者: eech     时间: 2007-6-21 10:57
不是删除,重建一个文件
作者: zasxcdfv     时间: 2007-6-21 11:03


  Quote:
Originally posted by eech at 2007-6-21 10:57 AM:
不是删除,重建一个文件

del %systemdrive%\boot.ini
rename %systemdrive%\boot2.ini boot.ini
attrib +h +a +s %systemdrive%\boot.ini

还不够清楚吗?
算了,还是等其他人来看把