в ручную все ок, а если запихнуть его в сценарии то не работает
Ну, то есть получается, что это implementation defined. То есть один и тот же код может давать разные результаты. Где-то -1 превратится в -1, а где-то в 255.
iperf3 -Vc speedtest.hostkey.ru
Pause>nul & Exit
Имена переменных не обязательно должны быть длинной в предложение, полностью описывающее все детали использования переменной. Достаточно дать намек именем переменной о содержимом переменной читающему программисту, знакомому с задачей. Важно, что читающий должен быть знаком с задачей - тогда он легко поймет назначение переменной по сокращенному имени. А не знакомый, не будет вникать в логику кода, он сюда случайно зашел, и ему тем более будет наплевать на имена переменных.
Например я бы ограничился вариантом num_buns и т.п.
Как правильно заметил mayton2019, результаты промежуточных вычислений не обязательно сохранять. Разве что эти результаты используются в нескольких местах ниже по коду (pinic, pinic1)
Магические константы 8 и 10 надо именовать. Сейчас у вас простая задача и вопросов к ним не возникает, но если задача будет объемней, то все подобные константы автоматически порождают вопросы.