Мой пакетный скрипт написан для измерения объема трафика между двумя компьютерами в сети. Таким образом, сценарий определяет размер файла и отправляет его с одного компьютера на другой и подсчитывает, сколько раз это работает. Но есть странная проблема с подсчетом общего количества успешно переданных байтов. Значение переменной среды asdf3
, напечатанное через echo
после того, как вычисление кажется неточным.
echo hat %count% mal geklappt
echo size: %menge% byte
set /a asdf3=%count%*%menge%
echo es wurden %asdf3% byte verschoben
Строки выше производят этот вывод:
hat 58 mal geklappt
size: 30245 byte
es wurden 2722050 byte verschoben
Это должно быть 1754210 (58 * 30245), если моя математика в порядке.
Переменные инициализируются так:
set file="test.odt"
FOR /F "usebackq" %%A IN ('%file%') DO set /A menge=%%~zA
set /A count=0
:marker
COPY /Y /V %file% \\%name%\Users\public
if 0==%errorlevel% (
set/Acount=%count%+1
goto :marker
)
Почему вычисление простого арифметического выражения в пакетном файле дает 2722050
вместо ожидаемого результата 1754210
?