Batch file 计算器批处理文件的同一行上的两个变量
我目前正在制作一个批处理文件,将两个数字相乘。这是我的密码:Batch file 计算器批处理文件的同一行上的两个变量,batch-file,cmd,Batch File,Cmd,我目前正在制作一个批处理文件,将两个数字相乘。这是我的密码: @echo off cls echo Math Commands set /p num1= & set /p num2= set /a sum1="num1 * num2" cls echo Your question is %num1% x %num2%= %sum1% pause 每次我输入第一个数字时,都会创建一个新行来输入第二个数字。我正在寻找的解决方案是在同一行上将它们相乘,例如用户输入“10 10”,而不是
@echo off
cls
echo Math Commands
set /p num1= & set /p num2=
set /a sum1="num1 * num2"
cls
echo Your question is %num1% x %num2%= %sum1%
pause
每次我输入第一个数字时,都会创建一个新行来输入第二个数字。我正在寻找的解决方案是在同一行上将它们相乘,例如用户输入“10 10”,而不是在下一行输入10然后再输入10。有没有办法做到这一点?谢谢大家! 正如我在评论中提到的,就拆分字符串并自己计算而言,您可能需要编写一个字符串解析器或使用regex。但是,如果您只想做简单的算术运算,您可以直接将输入输入到计算中
@echo off
cls
echo Math Commands
set /p "input=Calculate: "
set /a answer=%input%
cls
echo Your question is %input%= %answer%
pause
这应该适用于所有基本计算(不仅仅是乘法)。当我正确阅读您的问题和评论时,您希望输入两个数字(用空格分隔,没有算术符号) 使用取代环取代将空格替换为
*
set /p "x=Enter two numbers: "
set /a y=%x: =*%
echo %x: = x % = %y%
注意:还需要一些代码来避免“非格式”输入的语法错误要做到这一点,您需要学习一些字符串操作。我不确定是否要分批拆分字符串,但可以使用regex和
findstr
使用for/F
命令拆分数字:set/p numbers=
和for/F“tokens=1,2”%%a in(“%numbers%”)顺便说一下,设置“num1=%%a”和设置“num2=%%b”
,乘法的结果是乘积而不是和…;-)非常感谢你!我试图将其限制为乘法,因此我将研究findstr方法。不过,这种方法也很有效。@HS1881如果您觉得我的答案有帮助,请务必将其标记为正确