比较批处理脚本中的两个数字
对不起,如果它似乎是一个非常基本的问题,但我不能比较两个文件大小,其中一个文件正在连续写在批处理脚本,它不超越,如果语句,只是卡在那里,没有做任何事情出来。
:START copy C:\Users\Admin\ping.txt C:\Users\Admin\ping.partial set file="C:\Users\Admin\ping.txt" set parfile="C:\Users\Admin\ping.partial" ping -n 5 127.0.0.1 > nul FOR %%A IN (%file%) DO set size=%%~zA FOR %%B IN (%parfile%) DO set parsize=%%~zB echo %size% echo %parsize% if %size% EQU %parsize% ( ECHO file is complete > C:\Users\Admin\status.log ping -n 5 127.0.0.1 > nul ) else ( echo incomplete > C:\Users\Admin\status.log ping -n 5 127.0.0.1 > nul goto start )
我在这里做错了什么。 🙁
问候,Gaurav
if cond ( ... ) else ( ... ) if cond (...) else (...) if cond (...) else command if cond (...) else ( .... ) if cond ( .... ) else command
括号的位置很重要。 if
左括号需要与if
命令位于同一行。 if
右括号需要与else
子句(如果存在)在同一行中。 else
开括号需要和else
子句在同一行。
if %size% EQU %parsize%
会导致错误
if opp condition opp2 command
如果你修改后,这将工作
IF %size% == %parsize% ECHO file is complete > C:\Users\finoy\status.log ping -n 5 127.0.0.1 > nul else echo incomplete > C:\Users\finoy\status.log ping -n 5 127.0.0.1 > nul
一个问题是if比较之后的括号 – 它必须在同一行:
if %size% EQU %parsize% (