我正在开发一个CMD批处理。我想在其中做一些数学。这个公式:(x+1)100:y
批处理数学(胜利)
所以在批处理中,x = %x%, and y = %y%
。我知道如何设置变量。现在,批量如何计算? (WINDOWS CMD)
我需要额外的东西吗?
(我需要这是可用于Windows XP的用户7)
我正在开发一个CMD批处理。我想在其中做一些数学。这个公式:(x+1)100:y
批处理数学(胜利)
所以在批处理中,x = %x%, and y = %y%
。我知道如何设置变量。现在,批量如何计算? (WINDOWS CMD)
我需要额外的东西吗?
(我需要这是可用于Windows XP的用户7)
set命令支持一些有限的计算。在你的情况下,你想要:
set /a result=(100*x)/y
运行set /?
查看关于支持的完整文档。 /a
交换机也会自动变量替换,因此您可以使用x
而不是%x%
。
@echo off
set x=42
set y=5
set /a z = 100 * x/y
echo %z%
的set /a
命令可以分配一个数学表达式,以变量的结果(在该围绕在这些表达式中的变量名的%
的不必需的)。请参阅set /?
以获取支持的操作员列表和详细信息。
请注意,Windows批处理文件不支持浮点运算,因此如果表达式结果是小数,则只会计算整数部分。例如,3/2评估为和2/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
我不需要小数的工作。 – 2009-12-10 18:58:33
和btw;我忘了它不是x + 1,而是y + 1。所以像(x * 100)/(y + 1) – 2009-12-10 18:59:49
set /a
(任何arithmatic)set /a 2+2
加入set /a 2-2
减去set /a 2*2
乘以set /a 2/2
devidingset /a 2^2
exponet使用括号和括号显示的公式 为前的属性。 2(2+2)=8
显示分配属性。
这些例子需要quotes'set/a“2^2”'需要引号(不含引号只有22),而'^'是逻辑异或。最后一个是错误的,因为它缺少一个运算符:'2 *(2 + 2)'='8' – Zaq 2014-05-30 14:22:20
你想制定一个百分比,给出两个批处理文件变量'x'和'y'? – 2009-12-08 19:14:28