[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] set /p 赋值(含计算)问题

要达到以下目的,该?

set /p i=
如果输入 A 就 i=1
如果输入 B 就 i=2
如果输入  C 就 i=4
如果输入  D 就 i=8
.
.以此类推
.
如果输入  Y 就 i=2的24次方
如果输入  Z 就 i=2的25次方

如果输入 A+B 就 i=A+B的和
如果输入 A+C 就 i=A+C的和
如果输入 A+B+C 就 i=A+B+C的和
如果输入  X+Y+Z  就 i=X+Y+Z的和

[ 本帖最后由 raozhao2008 于 2008-12-10 18:30 编辑 ]

  1. @echo off & setlocal & more /e +4 "%~f0">calc.vbs
  2. set /p i=
  3. for /f %%a in ('cscript -nologo calc.vbs %i%') do echo %%a
  4. erase calc.vbs&pause&exit/b
  5. For Each c in Split(WSH.Arguments(0), "+")
  6.         n = n + 2 ^ (Asc(c) - Asc("A"))
  7. Next
  8. WSH.Echo n
复制代码
1

评分人数

TOP

VBS的可以吗,批处理好像不擅长这种计算
  1. a=1
  2. Do Until a=0
  3. a=inputbox("请输入次幂数(以0结束输入):","请输入")
  4. i=i+2^a
  5. Loop
  6. MsgBox (i-1)
复制代码
最后一次输入0就可以显示结果,不过别太大了,太大会转换成科学计数法显示。

TOP

回复 3楼 的帖子

能解决问题,什么都行
待测试

TOP

第一部分是输入字母,输出的是i的值,2 的X次方幂(X从0至25)。第二部分要求输入的是字母吗?如是,那A+B的值是什么?如不是,代替数字的,代替的是什么数?

TOP

参阅http://bbs.bathome.net/viewthread.php?tid=1863&page=1#pid11372
二楼的这两个标签部分(当然调用的结合看才能看出来)
:sshow
:setn

其中 n10 变量的值就是加起来的和。

[ 本帖最后由 wxcute 于 2008-12-10 20:31 编辑 ]

TOP

回复 2楼 的帖子

完全符合要求
从A加到Z的值是 6??、?、3,好几位数没记住
想不到有这么强的代码

那代码不是纯批处理的,看不懂

不知 怎样插入一些批处理命令,如set a=%n%,
我曾从 pause 那里入手,但出错
请高手指点

TOP

回复 6楼 的帖子

链接含有“注册表”关键字,打不开

[ 本帖最后由 raozhao2008 于 2008-12-11 19:34 编辑 ]

TOP

回复 7楼 的帖子

修改下就行
  1. @echo off & setlocal
  2. set /p i=
  3. for /f %%a in ('findstr "'%-%vbs" "%~f0"^>calc.vbs^&^&cscript -nologo calc.vbs %i%^&^&erase calc.vbs') do echo %%a
  4. ::::::::::::::Your Codes Here::::::::::::::
  5. pause&exit/b
  6. For Each c in Split(WSH.Arguments(0), "+")'vbs
  7.         n = n + 2 ^ (Asc(c) - Asc("A"))'vbs
  8. Next'vbs
  9. WSH.Echo n'vbs
复制代码
其实还是用纯P的效率更高:
  1. @echo off & setlocal
  2. set str=a b c d e f g h i j k l m n o p q r s t u v w x y z
  3.   for %%i in (%str%) do set/a%%i=1"<<num,num+=1
  4.   set/p chr=请输入任意数学表达式:
  5.   set/a chr=%chr%
  6.   echo %chr%
  7. pause
复制代码

[ 本帖最后由 rat 于 2008-12-11 21:41 编辑 ]

TOP

set/a%%i=1"<<num,num+=1
能详细解释一下 ?

TOP

返回列表