@serrrezhka

Как расставить приоритетность выполнения арифметических операций в bat?

@echo off
set /P x= "Enter first num: "
@echo off
set /P c="Enter second num: "
@echo off
if %x% GTR 0 (
	set /A sum= (%x% + %x%) * %c% * %x%
)
@echo off
echo %sum%
pause
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
wisgest
@wisgest
Не ИТ-специалист
Как уже сказал Sergei Nazarenko, можно экранировать скобки (достаточно закрывающие), но лучше взять выражение в кавычки. В set /a не следует без необходимости и понимания заключать имена переменных в знаки процента, так как в этом случае их значения будут подставлены до выполнения составной команды, что приведёт к ошибкам, например, в цикле.
set /a "sum = (x + x) * c * x"
или
set /a sum = "(x + x) * c * x"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nazares
@nazares
Software Engineer
экранируй скобки ^(%x%+%x%^)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы