1
我使用的是Windows,並且我想在一個蝙蝠內部做一個循環,並在條件滿足時打破它,並且我不想使用轉到,有人可以給我一般的做法呢? 在我的情況下,我想循環,直到文件大小大於200 KB,所以在我的批處理中創建一個文件(隨着時間變長),然後我想檢查它的大小與循環 ,如果它大於200 KB我想打破循環批處理循環,直到條件得到滿足
我使用的是Windows,並且我想在一個蝙蝠內部做一個循環,並在條件滿足時打破它,並且我不想使用轉到,有人可以給我一般的做法呢? 在我的情況下,我想循環,直到文件大小大於200 KB,所以在我的批處理中創建一個文件(隨着時間變長),然後我想檢查它的大小與循環 ,如果它大於200 KB我想打破循環批處理循環,直到條件得到滿足
不幸的是,一批腳本語言沒有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
是不是優雅就夠了嗎?我覺得是這樣的。
謝謝你的解決方案,對於goto,我認爲goto循環比其他循環慢,並且因爲我的C語言教授告訴我們goto是邪惡的:)至少在c。 – Leo92
一般來說,'goto'是邪惡的,因爲它可以打破控制流(例如,如果你可以從'if'跳到另一個'else'中)。但是,有時在批量生產中,你離不開它。在這些情況下,我想可以使用它。 –