批量相乘两个整数

问题描述 投票:0回答:4

我正在尝试批量进行关闭对话,但遇到了一个小问题。当您想使用计时器远程关闭自己的计算机时,我不喜欢 Windows 8 询问您以秒为单位的时间,而我正在尝试制作一个批处理文件,将给定的数字(分钟)转换为秒。

我搜索了绝大多数互联网,但找不到在批处理文件中将两个整数相乘的方法。

这是我到目前为止所拥有的:

@echo off  
echo Enter a number:  
set /p %num1%=  
echo Enter another:  
set /p %num2%=  
set /a sum1=%num1%*%num2%  
echo The total is %sum1%  
pause  

有好心人可以告诉我我哪里出了问题吗?

谢谢 查理B

windows batch-file
4个回答
8
投票

修复为

@echo off  
echo Enter a number:
set /p num1=  
echo Enter another:
set /p num2=
set /a sum1="num1 * num2"
echo The total is %sum1%  
pause 

6
投票

这将实现你想要的:

@echo off
Echo Time to Shutdown:
set /p "min=Time(Min): "
set /a sec=min*60
shutdown /t %sec%

这不会处理无效输入,但对于您的程序来说这不会成为问题。 (如果你希望它错误处理评论)。

莫娜


2
投票

您不必在变量声明中添加“%”

@echo off  
echo Enter a number:  
set /p num1=  
echo Enter another:  
set /p num2=  
set /a sum1=%num1%*%num2%  
echo The total is %sum1%  
pause  

0
投票

我最近写了一个expr的批处理版本:


    @echo off
    setlocal
    if %1.==. goto help
     echo.
     echo expr: integer math only!
     echo.

     (set /a ans=%*)
     echo ans: %ans%
     exit /b
   :help
     echo expr: command line calculator. v0.01 (2024-Nov-03)
     echo usage: expr {your expression here}

正如我的代码所示,我无法让我的小脚本使用实数(浮点)数字执行数学运算。 然而,它足以用作四函数整数计算器。 当我进一步研究这个问题时,我发现在 Windows 中计算浮点值的唯一方法是使用 powershell 或 Windows 版本的 bash。我实际上正在考虑在 C 中重新创建 expr 来正确解析命令行,但这在优先级列表中远远落后。

© www.soinside.com 2019 - 2024. All rights reserved.