以下情况,想问为什么会执行到copy d:\12.txt f:\这个语句?

@ECHO OFF
IF EXIST d:\12.txt (GOTO _COPY) else (GOTO _DONE)
:_COPY
COPY d:\12.txt e:\
:_DONE
copy d:\12.txt f:\
做成批处理文件后,运行后,怎么f盘也优12.txt文件啊
我才发现copy d:\12.txt f:\这句话本身优矛盾,不过这不影响我想提的那个问题,我想问为什么
会执行到copy d:\12.txt f:\这个语句

慕勒3428872
浏览 125回答 2
2回答

慕村9548890

当然,DOS下的GOTO语句只是转向,而非选择,也就是说,当d盘存在12.txt时,会转到_COPY标号处执行,当然向下执行时,同时会执行时_DONE语句的,因为goto是转到执行,而不是不执行以下含有标号的语句的。但我怎么也没有想通过,如果条件中d盘不存在12.txt文件时,会转到_DONE处执行,这时你怎么去拷贝d盘中的12.txt文件呢?真还有这样的条件吗?它是以退出DOS视窗为代价的。真正的单分支结构这样写才行:@ECHO OFFIF EXIST d:\12.txt (GOTO _COPY) else (GOTO _DONE):_COPYCOPY d:\12.txt e:\GOTO _Exit:_DONEcopy d:\12.txt f:\:_EXIT这样只要保证进入上一分支时进行再次的转向就可以了!

喵喔喔

@ECHO OFFIF EXIST d:\12.txt (GOTO _COPY) else (GOTO _DONE):_COPYCOPY d:\12.txt e:\exit:_DONEcopy d:\12.txt f:\
打开App,查看更多内容
随时随地看视频慕课网APP