web-dev-qa-db-ja.com

バッチの数学(勝利)

私はCMDバッチを開発しています。私はそれにいくつかの数学をしたいです。この式:(x+1)100:y

したがって、バッチで、x = %x%, and y = %y%。私は変数を設定する方法を知っています。さて、これをバッチ計算するにはどうすればよいですか? (WINDOWS CMD)

何か特別なものが必要ですか?

(Windowsのユーザーがこれを利用できるようにする必要がありますXP to 7)

15
Deniz Zoeteman

Setコマンドは、いくつかの限定された計算をサポートします。あなたの場合、あなたは欲しいです:set /a result=(100*x)/y

set /?を実行して、サポートされているものに関する完全なドキュメントを確認してください。 /aスイッチは自動変数置換を行うため、%x%の代わりにxを使用できます。

33
Kevin
@echo off

set x=42
set y=5

set /a z = 100 * x / y

echo %z%

set /aコマンドを使用すると、数式の結果を変数に割り当てることができます(その場合、これらの式の変数名の周りの%は必要ありません)。サポートされている演算子と詳細のリストについては、set /?を参照してください。

Windowsバッチファイルは浮動小数点演算をサポートしていないため、式の結果が小数の場合、整数部分のみがカウントされることに注意してください。たとえば、/21として評価され、2/はとして評価されます。

8
Helen

バッチで数学をしないでください。パーセンテージを実行している場合は、小数があり、バッチは小数をサポートしていません(浮動小数点)。 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
3
ghostdog74
  • _set /a_(任意の算術)
  • _set /a 2+2_追加
  • _set /a 2-2_減算
  • _set /a 2*2_乗算
  • _set /a 2/2_考案
  • _set /a 2^2_ exponet

括弧と括弧を使用して、例の方程式のプロパティを示します。 2(2+2)=8分配法則を示します。

2
steven