我正在尝试批量进行关闭对话,但遇到了一个小问题。当您想使用计时器远程关闭自己的计算机时,我不喜欢 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
修复为
@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
这将实现你想要的:
@echo off
Echo Time to Shutdown:
set /p "min=Time(Min): "
set /a sec=min*60
shutdown /t %sec%
这不会处理无效输入,但对于您的程序来说这不会成为问题。 (如果你希望它错误处理评论)。
莫娜
您不必在变量声明中添加“%”
@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
我最近写了一个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 来正确解析命令行,但这在优先级列表中远远落后。