@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
提交
取消