【问题标题】:Calculating the sum of two variables in a batch script计算批处理脚本中两个变量的总和
【发布时间】:2012-05-20 16:00:27
【问题描述】:

这是我第一次使用 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

如何添加这两个变量而不是回显该字符串?

【问题讨论】:

    标签: batch-file variables dosbox


    【解决方案1】:

    您需要在 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
    

    【讨论】:

    • 我试过了,但没用。它输出 ECHO 关闭,ECHO 关闭。
    • 如果您将代码保存到 .bat 文件中并从命令行运行它,它会生成输出 7 8。如果特别使用,即使 echo 关闭,echo 命令仍将输出。运行代码时看到什么输出?
    • 好吧,我在我的 Windows XP 机器上安装了 DOSBox 并复制了您所看到的内容。 DOSBox 似乎无法处理算术集SET /a,我在他们的sourceforge 中找不到任何补丁信息。您可能需要尝试不同的 dos 模拟器才能使其正常工作。
    • set /a c = %a% + %b% 给我Missing operand.
    • @staticbeast 因为set /a 是 Windows NT 的 cmd 扩展。 DOS没有那个。 Windows cmd is not DOS
    【解决方案2】:

    您可以解决任何方程,包括使用此代码添加:

    @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
    

    【讨论】:

    • 就术语而言,您不是在这里“解决任何方程式”。相反,您正在“评估一个表达式”,其中涉及具有已知值的变量。求解任意方程需要某种符号数学,而且要复杂得多!
    【解决方案3】:

    这是我的

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

    【讨论】:

    • 这与 Tamil selvan 的答案几乎相同(3 岁)。
    【解决方案4】:
    @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
    

    【讨论】:

      【解决方案5】:

      根据here 找到的这个有用的运算符列表[可以将运算符视为数学表达式],您可以使用 += 告诉批处理编译器您正在处理变量而不是固定数字 运算符而不是 + 运算符。

      希望我能帮上忙!

      【讨论】:

        【解决方案6】:
        @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
        

        【讨论】:

        • @ex3v,在这个网站上,每个人都可以格式化其他人的帖子。那不是很棒吗? =D
        猜你喜欢
        • 2011-02-10
        • 2011-12-12
        • 1970-01-01
        • 2012-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        相关资源
        最近更新 更多