3
運行下列批處理文件時,我希望程序從func例程中返回並顯示「結束程序」消息。相反,在for循環中執行暫停命令後,按下某個鍵後程序似乎會掛起。替換exit/b與goto:eof似乎具有相同的效果。無法從例程內的無限循環返回
@echo off
echo start program
call :func
echo end program
pause
exit /b
:func
echo start func
for /l %%l in() do (
echo start loop
pause
exit /b
echo end loop
)
echo end func
exit /b
預期輸出:
start program
start func
start loop
Press any key to continue...
end program
Press any key to continue...
我想避免使用的goto標籤作爲無限循環。用下面的循環中,僅顯示在迭代消息一次:
:test
for /l %%l in (1,1,3) do (
echo iteration: %%l
exit /b
)
exit /b
什麼是使用無限循環程序內,仍然可以返回給調用者的適當方法?
我不確定我是否遵循,術語無限是特定的,如果它是連續的,它將如何返回? – Compo
@Compo:'exit/b' *假設*結束循環,但似乎不適用於'/ L'循環 – abelenky
這個想法是在特定條件爲滿足。在批處理文件腳本中,您不能從其內部影響for循環的條件。我還發現,沒有直接的方式來擺脫死循環,同時避免使用goto-label。請參閱以下DosTips主題以獲取更多信息:http://www.dostips.com/forum/viewtopic.php?f=3&t=2707 – treintje