Математика на партии (победа)
Я разрабатываю пакет 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
Показывает дистрибутивное свойство.