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

[问题求助] vbs 怎样调用参数[已解决]

本帖最后由 FOR 于 2014-4-27 09:11 编辑

要求运行以下 cmd文件,显示出算式 (1+2)*5+2 的结果
问如何把这个算式传递给 a.vbs
a.vbs的代码怎样写?
谢谢。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str=(1+2)*5+2
  4. for /f "tokens=1* delims==" %%i in ('cscript /nologo a.vbs') do (
  5.   echo %%i
  6. )
  7. echo.
  8. pause>nul
复制代码
我这样写的话就会每运行一次,就要重新创建一个a.vbs文件,而我不想反复创建vbs文件
  1. set str=(1+2)*5+2
  2. >c:\a.vbs echo WScript.Echo a ^& " = " ^& FormatNumber(eval(!str!),,-1)
  3. for /f "tokens=2 delims= " %%i in ('cscript /nologo c:\a.vbs') do (
  4.      echo !str! = %%i
  5. )
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

re wankoilz
谢谢回复
这只是我代码的一部分,这种混编的方式也麻烦,也影响美观,并且不利于维护。

re PowerShell
谢谢回复
重新学一门语言,需要时间,尽管它和cmd很近,可要熟悉且掌握仍需投入大量的时间和精力,这正是我缺少的。

re DAIC
谢谢回复
问题不在文件是否存在上,而是没办法让a.vbs接受我的cmd算式

TOP

回复 6# DAIC


    求详细代码,谢谢!

TOP

可以了,哈哈,谢谢大家
最后在请问个问题,这个vbs如何设置小数位数?比如我想要保留5位小数。。
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=1.23+5.8*8.2*5
  3. for /f "delims=" %%i in ('cscript /nologo tmptmp.vbs !str!') do (
  4.      echo %%i
  5. )
  6. pause
复制代码

TOP

这样就可以了,嗯
问题完美解决,再次谢谢大家。
  1. WScript.Echo a ^& " = " ^& FormatNumber(eval(!str!),5,-1)
复制代码

TOP

返回列表