: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
这是一个批处理文件,我已经使用double %%分配checka和checkb。 但是我如何修复IF NOT? 如果它们不相等,那么请等到它们相等......如果有效,我希望我的代码能做什么。但它只是在IF声明结束,可能说这个时候没有预料到blahblahblah(我不知道因为它关闭得太快) 谢谢你的帮助。
答案 0 :(得分:3)
您对何时使用%%
感到困惑。设置环境变量时,set 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
答案 1 :(得分:1)
作为替代方法,请参阅HELP SET
和HELP CALL
并尝试以下代码...
call :getfilesize file1 checka
call :getfilesize file2 checkb
IF %checka% LSS %checkb% (
echo size of file1 %checka% less than size of file2 %checkb%
) ELSE (
echo size of file1 %checka% greater than or equal size of file2 %checkb%
)
goto :eof
:getfilesize
set %2=%~z1
goto :eof