|
DOS有奖问答No6:关于循环命令FOR的使用
真的不知道大家有没有实际试过,根本不得行
boot.ini是系统文件,隐藏文件,用COPY是拷贝不了的!!!!!!
其实这个批处理只需要下面这一句就足够了:
@for %%X in (e f g h i j k l m n o p q r s t u v w) do @if exist %%X:\boot.ini attrib %%X:\boot.ini -h -s&© %%X:\boot.ini %%X:\boot.bak&&attrib %%X:\boot.ini +h +s&&exit /b
当然,这是一个复合语句,愿意的话也可以将它扩展成下面这个样子:
@echo off
for %%X 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 %%X:\boot.ini (
attrib %%X:\boot.ini -h -s
copy %%X:\boot.ini %%X:\boot.bak
attrib %%X:\boot.ini +h +s
exit /b
)
if %%X==w echo Not found!
)
关键是要修改boot.ini的属性,当然还要改回来。
另外,大家都知道命令之间可以用&&连接,(或||,有点小区别)
还有就是 可以用括号来实现复合语句,和C语言中的大括号{}差不多
最后,批处理有循环但没有跳出循环的类似break continue的语句,
只能用exit /b了。也可以用goto:eof.或者自己在文件最后定义一个
标号end. |
|