If statement 用于检查批处理文件中的文件大小的代码无效

If statement 用于检查批处理文件中的文件大小的代码无效,if-statement,batch-file,If Statement,Batch File,这是一个批处理文件,我用双%%分配checka和checkb。 但是如果没有,我怎么能修复这个问题呢? 如果它们不相等,那么等待它们相等。。。如果我想让我的代码做什么。但它只是在IF声明中结束,可能是说blahblahblah在这个时候是不可能的(我不知道,因为它关闭得太快了) 谢谢您的帮助。您对何时使用%%感到困惑。设置环境变量时,设置varName=value。您的varName只是一个字符串,不需要%。您的值在FORI变量中,您在批处理文件中,因此使用%%~zI :loop2 ping 1

这是一个批处理文件,我用双%%分配checka和checkb。 但是如果没有,我怎么能修复这个问题呢? 如果它们不相等,那么等待它们相等。。。如果我想让我的代码做什么。但它只是在IF声明中结束,可能是说blahblahblah在这个时候是不可能的(我不知道,因为它关闭得太快了)
谢谢您的帮助。

您对何时使用
%%
感到困惑。设置环境变量时,
设置varName=value
。您的varName只是一个字符串,不需要%。您的值在FOR
I
变量中,您在批处理文件中,因此使用
%%~zI

:loop2
ping 1.1.1.1 -n 1 -w 10000 >nul
for %%I in (mesh0.1bb_intact.f06) do set %%checka=%%~zI
ping 1.1.1.1 -n 1 -w 20000 > nul
for %%I in (mesh0.1bb_intact.f06) do set %%checkb=%%~zI
IF NOT %checkb% EQU %checka% goto :loop2

您对何时使用
%%
感到困惑。设置环境变量时,
设置varName=value
。您的varName只是一个字符串,不需要%。您的值在FOR
I
变量中,您在批处理文件中,因此使用
%%~zI

:loop2
ping 1.1.1.1 -n 1 -w 10000 >nul
for %%I in (mesh0.1bb_intact.f06) do set %%checka=%%~zI
ping 1.1.1.1 -n 1 -w 20000 > nul
for %%I in (mesh0.1bb_intact.f06) do set %%checkb=%%~zI
IF NOT %checkb% EQU %checka% goto :loop2

作为替代方法,请参阅
帮助设置
帮助调用
,然后尝试以下代码

:loop2
ping 1.1.1.1 -n 1 -w 10000 >nul
for %%I in (mesh0.1bb_intact.f06) do set checka=%%~zI
ping 1.1.1.1 -n 1 -w 20000 > nul
for %%I in (mesh0.1bb_intact.f06) do set checkb=%%~zI
IF NOT %checkb% EQU %checka% goto :loop2

作为替代方法,请参阅
帮助设置
帮助调用
,然后尝试以下代码

:loop2
ping 1.1.1.1 -n 1 -w 10000 >nul
for %%I in (mesh0.1bb_intact.f06) do set checka=%%~zI
ping 1.1.1.1 -n 1 -w 20000 > nul
for %%I in (mesh0.1bb_intact.f06) do set checkb=%%~zI
IF NOT %checkb% EQU %checka% goto :loop2

您可以在结尾处暂停以查看错误消息,也可以通过命令提示符运行它。您可以在结尾处暂停以查看错误消息,或者通过命令提示符运行它。谢谢!!!它起作用了。。。这是我第一次使用DOS,所以我在这里学习。谢谢!!!它起作用了。。。这是我第一次使用DOS,所以我在这里学习。谢谢你的回答,但是你的代码中有太多我不熟悉的地方,我不想咬得太多。再次感谢您的回答,但是您的代码中有太多我不熟悉的地方,我不想咬得太多。再次感谢