我正在尝试编码一个脚本,该脚本将使用一个用户输入的整数,然后总结所有数字。整数必须在1-99
之间示例:
如果用户输入27
输出:9
这是代码:
@ECHO OFF
SET /p number="Enter a number: "
SET sum=0
IF %number% GTR 9 (
SET /a temp=%number% %% 10
SET /a sum+=%temp%
SET /a number/=10
SET /a sum+=%number%
) ELSE (
SET /a sum+=%number%
)
echo %sum%
因此,例如,输入的数字为19,首先要进行19%10来获得" 9"。然后是19/10获得1,将它们概括为10.
如果数字仅限于范围1-99,则计算为直接
set /a "sum=%number% / 10 + %number% %% 10"
%number% / 10
如果有的话,将返回左数,如果%number%
小于10
%number% %% 10
将返回正确的数字
只要总和
在块语句 因此,分配给 您应该查找有关 并且不要使用 (a parenthesised series of statements)
中,整个 block被解析,然后执行。块中的任何%var%
都将被该变量的值替换。temp
的值未按照您的预期进行评估。delayed expansion
的许多文章,并了解batch substrings
。这将使您的任务更容易。temp
作为用户变量,但是看起来合乎逻辑。temp
是一个目录指针,它告诉系统可以存储临时文件的位置。更改它不是一个好主意。
@echo off &setlocal disableDelayedExpansion
SET /p "var=Enter var (1-99) "
set /a var=%var:~0,1%+%var:~1,1% 2>nul
echo %var%