找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 17822|回复: 14

[已解决]用VBS计算用户输入的值乘以几个数

[复制链接]
发表于 2009-5-9 10:28:51 | 显示全部楼层 |阅读模式
要求,运行代码后,提示输入一个数 n
则计算 该数分别乘以 下列数的积,然后一次性显示出来
1.382
1.5
1.618
2
2.382
2.5
2.618
显示:
n*1.382=
n*1.5=
。。。。
。。。。
n*2.618=

[ 本帖最后由 随风 于 2009-5-9 19:31 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2009-5-9 10:54:52 | 显示全部楼层
  1. num=array(1.382,1.5,1.618,2,2.382,2.5,2.618)
  2. n=inputbox("Input a num")
  3. for i=0 to ubound(num)
  4. str=str&n&"*"&num(i)&"="&n*num(i)&chr(10)&chr(13)
  5. next
  6. msgbox str
复制代码

评分

参与人数 1PB +5 收起 理由
随风 + 5 感谢!

查看全部评分

 楼主| 发表于 2009-5-9 11:31:56 | 显示全部楼层

回复 2楼 的帖子

谢谢!
对vbs一窍不通,请问能把结果对齐吗?
再次麻烦了~~
向这样
3*8         = 24
10*10     = 100
100*100 = 10000

[ 本帖最后由 随风 于 2009-5-9 11:34 编辑 ]
发表于 2009-5-9 12:00:25 | 显示全部楼层
len
space
发表于 2009-5-9 12:05:19 | 显示全部楼层
  1. num=array(1.382,1.5,1.618,2,2.382,2.5,2.618)
  2. n=inputbox("Input a num")
  3. for i=0 to ubound(num)
  4. str=str&n&"*"&num(i)&chr(9)&"="&n*num(i)&chr(10)&chr(13)
  5. next
  6. msgbox str
复制代码
发表于 2009-5-9 12:05:51 | 显示全部楼层

回复 4楼 的帖子

直接用Tab就行了吧。。。。
用Spc太麻烦了。。。
 楼主| 发表于 2009-5-9 12:27:52 | 显示全部楼层
我真是笨极了,我想把乘号和等号左右都加个空格,怎么它会格一行对齐一行呢?
  1. num=array(1.382,1.5,1.618,2,2.382,2.5,2.618)
  2. n=inputbox("Input a num")
  3. for i=0 to ubound(num)
  4. str=str&n&" * "&num(i)&chr(9)&" = "&n*num(i)&chr(10)&chr(13)
  5. next
  6. msgbox str
复制代码
发表于 2009-5-9 13:11:21 | 显示全部楼层
  1. num=array(1.382,1.5,1.618,2,2.382,2.5,2.618)
  2. n=inputbox("Input a num")
  3. for i=0 to ubound(num)
  4.   if TypeName(num(i)) = "Integer" then
  5.     str=str&n&" * "&num(i)&chr(9)&chr(9)&" = "&n*num(i)&chr(10)&chr(13)
  6.   else
  7.     str=str&n&" * "&num(i)&chr(9)&" = "&n*num(i)&chr(10)&chr(13)
  8.   end if
  9. next
  10. WScript.Echo str
复制代码
 楼主| 发表于 2009-5-9 13:18:35 | 显示全部楼层

回复 8楼 的帖子

奇怪我的怎么不行?
 楼主| 发表于 2009-5-9 16:46:32 | 显示全部楼层
这段vbs的结果中难道有不可见字符?
我不用call 给变量赋值的话,第一行就怎么也对不齐。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims==" %%a in ('cscript /nologo tem.vbs') do (
  3.    call set "str=%%a                              "                              
  4.    if not "%%b"=="" echo. !str:~0,15! = %%b
  5. )
  6. pause
  7. exit
复制代码

tem.vbs
  1. num=array(1.382,1.5,1.618,2,2.382,2.5,2.618)
  2. n=inputbox("Input a num")
  3. for i=0 to ubound(num)
  4. str=str&n&"*"&num(i)& "= "&n*num(i)&chr(10)&chr(13)
  5. next
  6. WScript.Echo str
复制代码

[ 本帖最后由 随风 于 2009-5-9 16:47 编辑 ]
 楼主| 发表于 2009-5-9 16:48:38 | 显示全部楼层
真是奇怪了,call set "str=%%a                              " 始终无法在一行中显示,是论坛的原因吗?
彻底晕了。。。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('cscript /nologo tem.vbs') do (
  3.   echo [前] %%a [后]
  4. )
  5. pause
复制代码

只显示一个 “前”

[ 本帖最后由 随风 于 2009-5-9 16:55 编辑 ]
发表于 2009-5-9 17:05:23 | 显示全部楼层
Integer不是整数就有问题
 楼主| 发表于 2009-5-9 19:30:15 | 显示全部楼层
问题是解决了,采用的2楼的方案,谢谢大家。。。
发表于 2009-5-9 21:46:10 | 显示全部楼层
哈哈,随风兄也对vbs起了兴趣了。
的确,用vbs+批处理比单用批处理强了N倍。
发表于 2009-5-14 18:21:10 | 显示全部楼层

回复 9楼 的帖子

还是不明白~~1.5和2.5就那么特殊,后面一个也没有?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:46 , Processed in 0.028920 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表