我正在开发一个 CMD 批次。我想在其中做一些数学运算。这个公式:(x+1)100:y
所以在批量中,x = %x%, and y = %y%
. 我知道如何设置变量。现在,如何批量计算呢?(Windows 命令)
我需要额外的东西吗?
(我需要 Windows XP 到 7 的用户可以使用它。)
我正在开发一个 CMD 批次。我想在其中做一些数学运算。这个公式:(x+1)100:y
所以在批量中,x = %x%, and y = %y%
. 我知道如何设置变量。现在,如何批量计算呢?(Windows 命令)
我需要额外的东西吗?
(我需要 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评估为1,2/3评估为0。
不要批量做数学。如果你正在做百分比,你可能有小数并且批处理不支持小数。(浮动)。使用 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
set /a
(任何算术)set /a 2+2
添加set /a 2-2
减法set /a 2*2
倍增set /a 2/2
划分set /a 2^2
指数使用方括号和圆括号显示 ex 等式的性质。2(2+2)=8
显示分配属性。