标题: 请简化一下我的批处理
[打印本页]
作者: gmy
时间: 2006-1-10 11:29
标题: 请简化一下我的批处理
请简化一下我的批处理,要求用FOR命令,在纯DOS环境。
if exist c:\boot.ini goto c
if exist d:\boot.ini goto d
if exist e:\boot.ini goto e
...
if exist w:\boot.ini goto w
:c
set drv=c:
copy %drv%\boot.ini %drv%\boot.bak
goto end
:d
set drv=d:
copy %drv%\boot.ini %drv%\boot.bak
goto end
:e
set drv=e:
copy %drv%\boot.ini %drv%\boot.bak
goto end
...
:w
set drv=w:
copy %drv%\boot.ini %drv%\boot.bak
goto end
:end
目的:依次查找C到W盘根目录下的BOOT.INI,将首次找到的BOOT.INI复制到同一目录下,重命名为BOOT.BAK,找到后不再查找,结束程序。
Last edited by gmy on 2006-1-10 at 11:31 ]
作者: willsort
时间: 2006-1-10 15:10
作者: bush
时间: 2006-1-11 00:06
wil真是有心之人哪!
作者: gmy
时间: 2006-1-11 12:30
re:willsort
谢谢。已经解决。
@echo off
set drv=1
for %%i in (c d e f g h i j k l m n o p q r s t u v w) do if exist %%i:\boot.ini set drv=%%i
if %drv%==1 goto err
<img src="images/smilies/face-surprise.png" align="absmiddle" border="0">k
cls
echo OK! %drv%\boot.ini is found !
goto end
:err
cls
echo Sorry! boot.ini is not found!
goto end
:end
echo
echo
pause
Last edited by gmy on 2006-1-11 at 13:40 ]
作者: willsort
时间: 2006-1-11 14:43
Re gmy:
从你现在程序的运作方式来看,将导致始终检测从 C - W 的所有驱动器,而非一检测到匹配的驱动器盘符就立即跳出,以避免未分配的盘符及其他可能的驱动器访问问题。这是我修改后的版本,当然,它仍然无法根本解决盘符的访问问题,只是降低了出现问题的概率。
@echo off
if "%1"=="" goto ok
cls
for %%i in (c d e f g h i j k l m n o p q r s t u v w) do if exist %%i:\boot.ini %0 %%i
:err
echo Sorry! boot.ini is not found!
goto end
<img src="images/smilies/face-surprise.png" align="absmiddle" border="0">k
echo OK! %1\boot.ini is found !
goto end
:end
echo
echo
pause
作者: maya0su
时间: 2006-1-15 00:56
好贴!楼主的启动盘我现在就用着呢,willsort对批处理的研究确实让我佩服!