对不起,如果这似乎是一个非常基本的问题,但是我无法比较两个文件大小,其中一个文件是在批处理脚本中连续编写的,它不会超出if语句,只是卡在那里并且没有做任何事情就出来了。
: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
)
我在这里做错了什么。 :(
此致 拉夫
答案 0 :(得分:5)
if cond (
...
) else (
...
)
if cond (...) else (...)
if cond (...) else command
if cond (...) else (
....
)
if cond (
....
) else command
括号的位置很重要。 if
左括号需要与if
命令位于同一行。 if
右括号需要与else
子句(如果存在)在同一行。 else
左括号需要与else
子句位于同一行。
答案 1 :(得分:2)
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
答案 2 :(得分:0)
一个问题是if比较后的括号 - 它必须在同一行:
if %size% EQU %parsize% (