@ECHO OFFIF EXIST d:\12.txt (GOTO _COPY) else (GOTO _DONE):_COPYCOPY d:\12.txt e:\:_DONEcopy d:\12.txt f:\做成批处理文件后,运行后,怎么f盘也优12.txt文件啊我才发现copy d:\12.txt f:\这句话本身优矛盾,不过这不影响我想提的那个问题,我想问为什么会执行到copy d:\12.txt f:\这个语句
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
当然,DOS下的GOTO语句只是转向,而非选择,也就是说,当d盘存在12.txt时,会转到_COPY标号处执行,当然向下执行时,同时会执行时_DONE语句的,因为goto是转到执行,而不是不执行以下含有标号的语句的。
但我怎么也没有想通过,如果条件中d盘不存在12.txt文件时,会转到_DONE处执行,这时你怎么去拷贝d盘中的12.txt文件呢?真还有这样的条件吗?
它是以退出DOS视窗为代价的。真正的单分支结构这样写才行:
@ECHO OFF
IF EXIST d:\12.txt (GOTO _COPY) else (GOTO _DONE)
:_COPY
COPY d:\12.txt e:\
GOTO _Exit
:_DONE
copy d:\12.txt f:\
:_EXIT
这样只要保证进入上一分支时进行再次的转向就可以了!
喵喔喔
TA贡献1735条经验 获得超5个赞
@ECHO OFF
IF EXIST d:\12.txt (GOTO _COPY) else (GOTO _DONE)
:_COPY
COPY d:\12.txt e:\
exit
:_DONE
copy d:\12.txt f:\
添加回答
举报
0/150
提交
取消