![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 00:17 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 问个问题bat怎么实现加减乘除!! |
| 可打印版本 961 / 13 |
| 第1楼 mbllokmb | 发表于 2008-06-23 17:51 |
| 初级用户 发帖 39 积分 78 | |
|
问个问题bat怎么实现加减乘除!! 如题!
『第 6 楼』: %a% + (1.88*%b%)= %a% - (1.88*%b%)= 3.27*%b%= %a% %b% 表示 变量 怎么来写这个 bat [ Last edited by mbllokmb on 2008-6-23 at 06:33 PM ] |
|
| 第2楼 hongewuyan | 发表于 2008-06-23 17:52 |
| 初级用户 发帖 29 积分 65 | |
|
通过 set /a 应该可以实现
可以看一下 set 的帮助,很仔细的. |
|
| 第3楼 bat-zw | 发表于 2008-06-23 18:00 |
| 金牌会员 发帖 1,276 积分 3,105 | |
| 第4楼 mbllokmb | 发表于 2008-06-23 18:00 |
| 初级用户 发帖 39 积分 78 | |
|
好的我看看 最好有个例子!!!
|
|
| 第5楼 mbllokmb | 发表于 2008-06-23 18:02 |
| 初级用户 发帖 39 积分 78 | |
|
呵呵 写的很好我仔细看下!!
|
|
| 第6楼 mbllokmb | 发表于 2008-06-23 18:25 |
| 初级用户 发帖 39 积分 78 | |
|
%a% + (1.88*%b%)=
%a% - (1.88*%b%)= 3.27*%b%= %a% %b% 表示 变量 怎么来写这个 bat |
|
| 第7楼 mbllokmb | 发表于 2008-06-24 05:52 |
| 初级用户 发帖 39 积分 78 | |
|
没有可能了么?、??
|
|
| 第8楼 hongewuyan | 发表于 2008-06-24 11:19 |
| 初级用户 发帖 29 积分 65 | |
|
昨天考虑了一下,单纯通过批处理命令来实现这种含有大量小数的运算,恐怕力不能及
因为近期在研究lua,如果通过调用lua的命令模式,就可以很容易得到结果了。 lua是开源的免费软件,可以在这里下载得到: http://luabinaries.luaforge.net/download.html 可以直接下载编译好的,或者自行编译均可 通常下载http://luaforge.net/frs/download.php/3134/lua5_1_3_Win32_bin.zip即可 然后批处理代码如下: @echo off set path=%path%;path\to\your\lua\ set /p a="请输入a的数值:" set /p b="请输入b的数值:" echo 第一个计算项%a% + (1.88*%b%)的值为: lua -e "print(%a%+(1.88*%b%))" echo 第二个计算项%a% - (1.88*%b%)的值为: lua -e "print(%a% - (1.88*%b%))" echo 第三个计算项3.27*%b%的值为: lua -e "print(3.27*%b%)" pause>nul 说明: path\to\your\lua\ 请替换为你把下载后的lua解压存放的路径,方便调用 下载下的lua可执行文件默认为 lua5.1.exe ,我因为经常用到,所以为了方便输入改名为lua了,可酌情自行修改。 以上仅为举例,未对a、b值的输入做合法性判断。 |
|
| 第9楼 mbllokmb | 发表于 2008-06-24 13:09 |
| 初级用户 发帖 39 积分 78 | |
|
@echo off
set path=%path%;C:\mbll\lua.exe set /p a="请输入a的数值:" set /p b="请输入b的数值:" echo 第一个计算项%a% + (1.88*%b%)的值为: lua -e "print(%a%+(1.88*%b%))" echo 第二个计算项%a% - (1.88*%b%)的值为: lua -e "print(%a% - (1.88*%b%))" echo 第三个计算项3.27*%b%的值为: lua -e "print(3.27*%b%)" pause>nul 是不是这样可是现示的是lua不是外部程序!! |
|
| 第10楼 hongewuyan | 发表于 2008-06-24 13:39 |
| 初级用户 发帖 29 积分 65 | |
|
set path=%path%;C:\mbll\lua.exe
这一行改成 set path=%path%;C:\mbll |
|
| 第11楼 bat-zw | 发表于 2008-06-24 14:23 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
纯批也可以实现的,但很麻烦,如下:
ps:楼主可以随意修改这两个数值来测试。 [ Last edited by zw19750516 on 2008-6-24 at 03:04 PM ] |
|
| 第12楼 mbllokmb | 发表于 2008-06-24 16:30 |
| 初级用户 发帖 39 积分 78 | |
|
不是吧还不行!
@echo off set path=%path%;C:\mbll set /p a="请输入a的数值:" set /p b="请输入b的数值:" echo 第一个计算项%a% + (1.88*%b%)的值为: lua -e "print(%a%+(1.88*%b%))" echo 第二个计算项%a% - (1.88*%b%)的值为: lua -e "print(%a% - (1.88*%b%))" echo 第三个计算项3.27*%b%的值为: lua -e "print(3.27*%b%)" pause>nul 解压路径C:\mbll 运行bat后提示如下: 请输入a的数值:1 请输入b的数值:1 第一个计算项1 + (1.88*1)的值为: 'lua' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 第二个计算项1 - (1.88*1)的值为: 'lua' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 第三个计算项3.27*1的值为: 'lua' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 [ Last edited by mbllokmb on 2008-6-24 at 04:41 PM ] |
|
| 第13楼 mbllokmb | 发表于 2008-06-24 16:47 |
| 初级用户 发帖 39 积分 78 | |
|
11楼的好是好但不能满足我的要求!! 呵呵
|
|
| 第14楼 hongewuyan | 发表于 2008-06-24 16:56 |
| 初级用户 发帖 29 积分 65 | |
|
'lua' 不是内部或外部命令,也不是可运行的程序
或批处理文件。 第二个计算项1 - (1.88*1)的值为: 'lua' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 第三个计算项3.27*1的值为: 'lua' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 这说明你还是没有把lua放到系统路径里面。。。。 举例你把lua下载解压到 D:\LUA 这个目录下了 同时注意 把 lua5.1.ee 这个文件 重命名为 lua.exe (不重命名也可以,修改上面命令里面相应文件名即可) 这时 set path=%path%;C:\mbll 应该为 set path=%path%;D:\LUA |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |