我正在開發一個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