バッチでの数学 (勝利)
-
18-09-2019 - |
質問
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 の評価として 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
分配性を示します。