中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: cmd 计算能力很弱 上一主题 | 下一主题
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『楼 主』:  cmd 计算能力很弱

set /a 可用于计算, 但功能很弱, 不支持乘方, 比起其它高级语言来, 差多了.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-10 01:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  CMD的计算能力确实比较弱:不直接支持小数的加减乘除。但是,也并非像你所说的那样不中用。

  乘方的代码如下(没有做容错检测,已修正11楼指出的错误):
@echo off

:main
cls
echo.&echo.
set x=
set n=
set /p x=请输入底数:
set /p n=请输入指数:
set /a n-=1,num=%x%
for /l %%i in (1,1,%n%) do (
    set /a num*=%x%
)
echo.&echo.
set /a n+=1
if %n% equ 0 (
    echo %x% 的 %n% 次方是 1
) else echo %x% 的 %n% 次方是 %num%
pause
goto main
  更多的CMD运算,可以参考以下帖子:

  1、[共同参与][挑战思路][批处理处理浮点运算]
  2、批处理计算器

[ Last edited by namejm on 2007-3-9 at 07:46 PM ]



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-3-10 01:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 3 楼』:  

namejm的回答不错,6622186的签名有个性。好!

2007-3-10 01:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qjbm
初级用户





积分 125
发帖 44
注册 2007-1-24
状态 离线
『第 4 楼』:  

感觉楼主的意思是想说"开方".

也确实是如楼主所说.........

批处理并不适合担当复杂计算任务,

同样思路模式的批处理计算程序,与其他语言相比计算速度与效率低的惊人!

也许根本不应该把批处理来当作一种计算机语言,来进行比较.

[ Last edited by qjbm on 2007-3-9 at 01:07 PM ]

2007-3-10 02:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by 6622186 at 2007-3-10 01:35:
set /a 可用于计算, 但功能很弱, 不支持乘方, 比起其它高级语言来, 差多了.

但是人的智慧不受这些局限。用C++完成的任务用bat来完成,那就是激动人心的挑战!




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2007-3-10 02:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 6 楼』:  

@echo off
@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul

签名是很NB!

请问:
第3行为什么用了那么多“,”???

我改成
@for /l %%i in (1,1,55) do @call set /p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul
也行?

谁能解释一下吗?

难道“,“可以替代” “???

[ Last edited by xycoordinate on 2007-3-9 at 01:30 PM ]

2007-3-10 02:26
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
kenshu
新手上路





积分 10
发帖 5
注册 2007-3-8
状态 离线
『第 7 楼』:  

看来就上好玩咯~呵呵 `

2007-3-10 02:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by xycoordinate at 2007-3-10 02:26:
@echo off
@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>n ...

无奈何的……




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2007-3-10 02:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 9 楼』:  

re 六楼, "," 可作分隔符, 其它字符也可以, 比如"=".



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-10 07:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 10 楼』:  

二楼的代码可以, 谢谢!



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-3-10 07:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 11 楼』:  

请输入底数:5
请输入指数:0


5 的 0 次方是 5
请按任意键继续. . .


呵呵,jm 兄忘记弄这个的过滤了

2007-3-10 08:01
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 12 楼』:  

  确实是遗漏了这种情况,已经修正,多谢指出。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-3-10 08:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: