Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 计算器批处理文件的同一行上的两个变量_Batch File_Cmd - Fatal编程技术网

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如果您觉得我的答案有帮助,请务必将其标记为正确