Loops 批量循环,直到满足条件

Loops 批量循环,直到满足条件,loops,batch-file,Loops,Batch File,我正在使用windows,我想在蝙蝠内部做一个循环,并在满足条件时打破它,我不想使用转到,有人能给我一个一般的方法吗? 在我的例子中,我想循环直到一个文件大小大于200KB,所以在我的批处理中我创建了一个文件(随着时间的推移它会变大),然后我想用循环检查它的大小 如果大于200 KB,我想中断循环不幸的是,批处理脚本语言没有,而循环,只有用于具有预定迭代量的循环,因此我担心if+转到是您唯一的选择。为什么您决定避免成批执行goto语句? 以下代码类似于常见的do while循环: :do_whi

我正在使用windows,我想在蝙蝠内部做一个循环,并在满足条件时打破它,我不想使用转到,有人能给我一个一般的方法吗? 在我的例子中,我想循环直到一个文件大小大于200KB,所以在我的批处理中我创建了一个文件(随着时间的推移它会变大),然后我想用循环检查它的大小
如果大于200 KB,我想中断循环

不幸的是,批处理脚本语言没有
,而
循环,只有
用于具有预定迭代量的
循环,因此我担心
if
+
转到
是您唯一的选择。为什么您决定避免成批执行
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中是如此。一般来说,
goto
是邪恶的,因为它会破坏控制流(例如,您可以从一个
if
跳转到另一个if的
else
)。但是,有时在批处理中,您不能没有它。在这些情况下,我想使用它是可以的。