2012-08-30 52 views
1

我使用的是Windows,並且我想在一個蝙蝠內部做一個循環,並在條件滿足時打破它,並且我不想使用轉到,有人可以給我一般的做法呢? 在我的情況下,我想循環,直到文件大小大於200 KB,所以在我的批處理中創建一個文件(隨着時間變長),然後我想檢查它的大小與循環 ,如果它大於200 KB我想打破循環批處理循環,直到條件得到滿足

回答

3

不幸的是,一批腳本語言沒有while循環,只有for循環與迭代的預定量,所以恐怕if + goto是你唯一的選擇。你爲什麼決定批量避免goto報表?

下面的代碼類似於常見do-while循環:

:do_while_loop_start 
rem This is the body of the loop (do something here...) 

:do_while_loop_end 
for /f "usebackq" %%a in ('somefile.txt') do set filesize=%%~za 
if %filesize% leq 204800 goto do_while_loop_start 

是不是優雅就夠了嗎?我覺得是這樣的。

+1

謝謝你的解決方案,對於goto,我認爲goto循環比其他循環慢,並且因爲我的C語言教授告訴我們goto是邪惡的:)至少在c。 – Leo92

+1

一般來說,'goto'是邪惡的,因爲它可以打破控制流(例如,如果你可以從'if'跳到另一個'else'中)。但是,有時在批量生產中,你離不開它。在這些情況下,我想可以使用它。 –

相關問題