Математика на партии (победа)

Я разрабатываю пакет CMD. Я хочу сделать математику. Эта формула: (x+1)100:y

Итак, в пакете x = %x%, and y = %y%. Я знаю, как установить переменные. Теперь, как можно рассчитать это? (WINDOWS CMD)

Нужно ли что-то дополнительное?

(Мне нужно, чтобы это было доступно для пользователей Windows XP до 7.)

Ответы

Ответ 1

Команда set поддерживает некоторый ограниченный расчет. В вашем случае вы хотите:

set /a result=(100*x)/y

Запустите set /?, чтобы просмотреть полную документацию о том, что поддерживается. Переключатель /a также выполняет автоматическую подстановку переменных, поэтому вы можете использовать x вместо %x%.

Ответ 2

@echo off

set x=42
set y=5

set /a z = 100 * x / y

echo %z%

Команда set /a позволяет присваивать результат математического выражения переменной (при этом имена переменных % вокруг этих выражений не требуются). См. set /? для списка поддерживаемых операторов и деталей.

Обратите внимание, что командные файлы Windows не поддерживают арифметику с плавающей запятой, поэтому, если результат выражения является дробным числом, подсчитывается только целочисленная часть. Например, 3/2 оценивает как 1 и 2/3 как 0.

Ответ 3

НЕ делайте математику в партии. Если вы делаете процент, у вас могут быть десятичные и десятичные числа, но пакет не поддерживает десятичные числа (плавающие). Используйте vbscript или что-то лучше.

сохраните ниже как caculate.vbs

Set objFS=CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
x = objArgs(0)
y = objArgs(1)
WScript.Echo ( x + 1 ) * 100  / y

и в командной строке

c:\test> cscript //nologo calculate.vbs 4 5

Ответ 4

  • set /a (любой арифметический)
  • set /a 2+2 добавление
  • set /a 2-2 вычитание
  • set /a 2*2 умножение
  • set /a 2/2 deviding
  • set /a 2^2 exponet

используйте скобки и круглые скобки, чтобы показать свойства уравнений напр. 2(2+2)=8 Показывает дистрибутивное свойство.