2012-05-20 71 views
36

這是我第一次使用Stack Overflow,因此請對此問題保持寬鬆。我一直在批量編程,並使用DOSbox在Linux機器上運行它們。計算批處理腳本中兩個變量的總和

這裏是代碼我一直使用:

@echo off 
set a=3 
set b=4 
set c=%a%+%b% 
echo %c% 
set d=%c%+1 
echo %d% 

的輸出是:

3+4 
3+4+1 

我如何將添加兩個變量,而不是附和該字符串的?

回答

54

您需要在set命令上使用屬性/a

例如,

set /a "c=%a%+%b%" 

這可以讓你在set命令使用arithmetic expressions,而不是簡單的串聯。然後

您的代碼將是:

@set a=3 
@set b=4 
@set /a "c=%a%+%b%" 
echo %c% 
@set /a "d=%c%+1" 
echo %d% 

和將輸出:

7 
8 
+2

我試過了,並沒有奏效。它輸出ECHO關閉,ECHO關閉。 – Swarage

+0

如果將代碼保存到.bat文件並從命令行運行,它將生成輸出「7 8」。即使在回聲關閉的情況下,如果特別使用echo命令仍然會輸出。當你運行代碼時你看到了什麼輸出? – staticbeast

+0

我將代碼保存到.bat文件中。有一件事。我運行linux,並從DOSbox運行代碼。我通過在DOSbox中輸入.bat文件的名字來運行程序(在安裝完所有額外的程序之後)。輸出是「ECHO關閉」,並在下一行「ECHO關閉」 – Swarage

0
@ECHO OFF 
ECHO Welcome to my calculator! 
ECHO What is the number you want to insert to find the sum? 
SET /P Num1= 
ECHO What is the second number? 
SET /P Num2= 
SET /A Ans=%Num1%+%Num2% 
ECHO The sum is: %Ans% 
PAUSE>NUL 
+0

格式化如何? – ex3v

+3

@ ex3v,在這個網站上,每個人都可以格式化其他人的帖子。這不是很好嗎? = D – Sinatr

3

根據運營商的這個有用的列表[操作員可以如數學表達式想到]找到here,您可以通過使用+ =歌劇告訴批處理編譯器您正在操作變量而不是固定數字而不是+運營商。

希望我幫助!

1
@ECHO OFF 
TITLE Addition 
ECHO Type the first number you wish to add: 
SET /P Num1Add= 
ECHO Type the second number you want to add to the first number: 
SET /P Num2Add= 
ECHO. 
SET /A Ans=%Num1Add%+%Num2Add% 
ECHO The result is: %Ans% 
ECHO. 
ECHO Press any key to exit. 
PAUSE>NUL 
+0

它沒有帶來任何新東西,沒有解釋任何東西。 –

0

可以解決任何方程,包括與此代碼添加:

@echo off 

title Richie's Calculator 3.0 

:main 

echo Welcome to Richie's Calculator 3.0 

echo Press any key to begin calculating... 

pause>nul 

echo Enter An Equation 

echo Example: 1+1 

set /p 

set /a sum=%equation% 

echo. 

echo The Answer Is: 

echo %sum% 

echo. 

echo Press any key to return to the main menu 

pause>nul 

cls 

goto main 
-1

您正在尋找的 '/ A' 屬性。這裏:

@echo off 
set a=3 
set b=4 
set/a c=%a%+%b% 
echo %c% 
set/a d=%c%+1 
echo %d% 

'/ a'是數學。你不能輸入字母。默認返回值爲0 輸出將是:

7 
8 
+1

我在這裏看不到任何更多的信息比在接受,4歲的答案! – jeb

-1

這裏是我的

echo Math+ 
ECHO First num: 
SET /P a= 
ECHO Second num: 
SET /P b= 
set /a s=%a%+%b% 
echo Result: %s% 
+0

這幾乎是相同的(3歲)答案像泰米爾selvan的答案。 – jeb