中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理中如何进行数值运算呀
作者:
标题: 批处理中如何进行数值运算呀 上一主题 | 下一主题
yibo0922
新手上路





积分 8
发帖 2
注册 2006-2-15
状态 离线
『楼 主』:  批处理中如何进行数值运算呀

批处理中怎样进行加减乘除的数值运算呢?
我从文本中取了一个变量,比如说T,取值为19,怎样能给另外一个变量X赋值为18,也就是X=T-1,或者进行其他的运算?
请大家帮帮忙啦

2006-2-15 17:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 2 楼』:  

用 set /a 直接计算就可以了。
例:
set t=19
set /a x=t-1
其他计算类似,详情见 set /?



  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-2-15 19:22
查看资料  发送邮件  发短消息 网志  OICQ (105400208)  编辑帖子  回复  引用回复
yibo0922
新手上路





积分 8
发帖 2
注册 2006-2-15
状态 离线
『第 3 楼』:  

谢谢啦

2006-2-16 08:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 4 楼』:  

题目:将1-9这9个数字分成三个3位数,要求分出的第一个3位数,正好是第二个三位数的二倍,是第三个3位数的三倍。
@echo off
setlocal
if exist cxs.txt del cxs.txt
if exist startup.txt echo y | del startup.txt
if exist process.txt echo y | del process.txt
set /a var1 = 2
set /a var2 = 1
set /a var3 = 2
set /a i = 0
echo 运算结果: >> cxs.txt

:cxs
if "%var2%"=="10" set /a var3 = %var3% + 2 && set /a var2 = 1 && goto cxs
if "%var3%"=="10" set /a var1 = %var1% + 1 && set /a var3 = 2 && goto cxs
if "%var1%"=="7" goto exit
set /a var2 = %var2% + 1
if "%var1%"=="%var2%" goto cxs
if "%var1%"=="%var3%" goto cxs
if "%var2%"=="%var3%" goto cxs

set /a i = %i% + 1
set /a number = %i% * 100 / 120
cls
echo 当前进度:..........%number%%%

set /a tmp2 = %var1% * 100 + %var2% * 10 + %var3%
set /a tmp1 = %tmp2% / 2
set /a tmp3 = %tmp1% * 3

echo %tmp1%%tmp2%%tmp3% | find "1" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "2" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "3" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "4" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "5" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "6" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "7" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "8" || goto cxs
echo %tmp1%%tmp2%%tmp3% | find "9" || goto cxs

set /a nums = %tmp1%%tmp2%%tmp3%
echo %tmp3%,%tmp2%,%tmp1% >> cxs.txt

set /a tmp1 = 0
set /a tmp2 = 0
set /a tmp3 = 0
goto cxs

:exit
cls
echo 共计算了%i%次. >> cxs.txt
endlocal


echo             ************************* >>cxs.txt
echo             孤狗           QQ:3742668 >>cxs.txt
echo             ************************* >>cxs.txt
exit

电脑报第36期编程魔方的题目。
用CMD写了一个,带进度条显示,本来还有一些系统检查的功能的,这里去掉了。其实不用那么多代码的,只不过为了减少运算的次数提高效率以及显示进度等等才多了不少行。。。

[ Last edited by 3742668 on 2006-2-18 at 07:40 ]

2006-2-18 07:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 5 楼』:  

从4楼中又学到了点东西.....

2006-2-18 20:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 6 楼』:  

见笑了,呵呵,其实这个东东还可以简化,只是当时水平有限,不堪入目之处希望老鸟们不要见笑。。。

2006-2-18 22:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 7 楼』:  

对于我等菜鸟来说,这里是高手如云滴.

2006-6-26 20:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: