Board logo

标题: 如何在批处理调用有参数的vbs [打印本页]

作者: benteng302     时间: 2007-4-17 05:28    标题: 如何在批处理调用有参数的vbs

如何在批处理调用有参数的vbs,
例如:我想用bat 调用这样一个vbs.
function  s( str)
msgbox(str)
end function

作者: benteng302     时间: 2007-4-17 05:34
各位大侠出手亚,很急的。谢谢le
作者: zhoushijay     时间: 2007-4-17 05:59
不懂,你把代码写进。VBS不就好了吗?再在BAT中直接调用这个VBS文件
作者: zh159     时间: 2007-4-17 06:07
wscript.arguments(0)=%1
wscript.arguments(1)=%2
wscript.arguments(2)=%3
作者: benteng302     时间: 2007-4-17 06:22
哦,对不起我没有标到清楚。我得像法是这样:
@echo off
echo function  s( str) >1.vbs
echo msgbox(str) >>1.vbs
echo end function >>1.vbs
在批处理中有个字符,用批处理调用1.vbs显示一个对话框显示字符。
作者: benteng302     时间: 2007-4-17 06:36


  Quote:
Originally posted by zhoushijay at 2007-4-17 05:59:
不懂,你把代码写进。VBS不就好了吗?再在BAT中直接调用这个VBS文件

谢谢你的回答,可是这个vbs有参数亚。我的问题就是怎么调用。能帮忙吗?谢谢!
作者: zh159     时间: 2007-4-17 06:47

@echo off
set str=变量
echo msgbox("%str%") >1.vbs
1.vbs
要显示字符,vbs里面必须用""引用
作者: benteng302     时间: 2007-4-17 06:56


  Quote:
Originally posted by zh159 at 2007-4-17 06:47:
@echo off
set str=变量
echo msgbox("%str%") >1.vbs
1.vbs
要显示字符,vbs里面必须用""引用

哦,太好了。谢谢谢谢!!终于等到高手了。
作者: benteng302     时间: 2007-4-17 07:41
zh159你好,还在吗?为什么我不能运行成功呢。麻烦你再帮我看看,多谢了!
for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(
    if exist %%a:\nul (
        set str= %%a:
    echo msgbox("%str%") >1.vbs
                   1.vbs
    )
)
作者: zh159     时间: 2007-4-17 08:20

@echo off
for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%a:\nul echo msgbox("%%a:")>1.vbs
    1.vbs
)

作者: benteng302     时间: 2007-4-17 08:27


  Quote:
Originally posted by zh159 at 2007-4-17 08:20:
@echo off
for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%a:\nul echo msgbox("%%a:")>1.vbs
    1.vbs
)

为什么不行呢?
作者: bjsh     时间: 2007-4-17 08:47
在批处理中调用带参数的vbs

cscript test.vbs 参数
作者: zh159     时间: 2007-4-17 08:57

@echo off
for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  if exist %%a:\nul (
    >1.vbs echo msgbox^("%%a:"^)
    1.vbs
  )
)
del 1.vbs
exit

作者: benteng302     时间: 2007-4-17 09:06
谢谢二位,谢谢!刚才我都要疯了,谢谢!
作者: benteng302     时间: 2007-4-17 09:11


  Quote:
Originally posted by zh159 at 2007-4-17 08:57:
@echo off
for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  if exist %%a:\nul (
    >1.vbs echo msgbox^("%%a:"^)
    1.vbs
  )
)
del 1.vbs
exit

谢谢你帮助我,谢谢。
>1.vbs echo msgbox^("%%a:"^)与echo msgbox("%%a:")>1.vbs
有什么区别呢,可以告诉我吗?
作者: flyinspace     时间: 2007-4-17 09:17
CScript scriptname.extension [option...] [arguments...]

选项:
//B         批模式:不显示脚本错误及提示信息
//D         启用 Active Debugging
//E:engine  使用执行脚本的引擎
//H:CScript 将默认的脚本宿主改为 CScript.exe
//H:WScript 将默认的脚本宿主改为 WScript.exe (默认)
//I         交互模式(默认,与 //B 相对)
//Job:xxxx  执行一个 WSF 工作
//Logo      显示徽标(默认)
//Nologo    不显示徽标:执行时不显示标志
//S         为该用户保存当前命令行选项
//T:nn      超时设定秒:允许脚本运行的最长时间
//X         在调试器中执行脚本
//U         用 Unicode 表示来自控制台的重定向 I/O

这个是帮助信息。。。。

批处理也就是如此调用参数的。。。

cscript /nologo 参数一 参数二
如此就好了。
作者: zh159     时间: 2007-4-17 09:23
一样的

空光驱不会出错:
@echo off
for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  dir %%a:>nul 2>nul&&if exist %%a:\nul (
  >1.vbs echo msgbox^("%%a:"^)
  1.vbs
  )
)
del 1.vbs
exit