标题: [数值计算] 如何在批处理脚本中获取 set/a 命令的回显输出? [打印本页]
作者: DeadCatMiMi 时间: 2011-12-6 21:11 标题: 如何在批处理脚本中获取 set/a 命令的回显输出?
- set/p cmdinput=
- set/a 1+1
- %cmdinput%
复制代码
以上代码 如果用 手工输入 可以得到 2
如果 写在 bat 里面- set/p cmdinput=
-
- %cmdinput%
复制代码
然后输入 set/a 1+1 不能够显示 结果
请教解决方案!谢谢!
作者: CrLf 时间: 2011-12-6 21:52
本帖最后由 CrLf 于 2011-12-6 21:54 编辑
至少三个方案:
1、用 @prompt $_ 或 @prompt $M 等来代替 @echo off,即可获得 set /a、more 等命令的回显输出
2、将值赋为变量
3、用管道或 for /f 开启子 cmd 进程来执行这一段,并获取输出
作者: powerbat 时间: 2011-12-6 21:55
set /?
如果 SET /A 在命令脚本外的命令行执行的,那么它显示该表达式的最后值。
cmd /c %cmdinput%
或者
set /a sum=1+1
echo %sum% 或 set sum
作者: DeadCatMiMi 时间: 2011-12-6 22:31
先谢谢 楼上的回答
作者: DeadCatMiMi 时间: 2011-12-6 22:33
1、用 @prompt $_ 或 @prompt $M 等来代替 @echo off,即可获得 set /a、more 等命令的回显输出
2、将值赋为变量
测试过了 不行
cmd /c 是可以的 我之前也用这个 可惜 不能用在整个程序里面
感觉。。。
作者: awk 时间: 2011-12-7 10:47
回复 5# DeadCatMiMi
我感觉你的感觉是不对的
我感觉版主的感觉是对的
作者: slore 时间: 2011-12-7 12:29
对于楼顶的问题其实cmd /c这个帖子就结了。
set/p cmdinput=
cmd /c %cmdinput%
你要继续问,就对问题继续补充。。。。
至于你说不能用在整个程序中,你不妨把使用这种方法不能成功的那部分代码拿出来,看能否修正。
对于你的输入都是什么范围和格式。。。一定是 set /a开头后面是计算式么?
那你就自己截取表达式,自己算啊。
比如:
set /p cmdinput=
set /a val=%cmdinput%
echo %val%
用户可以直接输入数据5
或者输入表达式10+5
不是更方便?为什么要set /a
作者: CrLf 时间: 2011-12-7 15:41
回复 6# awk
飙泪,我混乱了,3 楼是对的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |