除非我使用cscript前缀运行,否则运行vb脚本不会“看到”参数

时间:2016-11-16 07:54:33

标签: vbscript parameters

所以我有一个基本脚本,只打印出传入的参数:

projectName  = ""
if Wscript.Arguments.Count > 0 then
    projectName = Wscript.Arguments(0)
else
    WScript.StdOut.WriteLine "No project specified"
end if
WScript.StdOut.WriteLine "Running script on project: " & projectName

当我从命令行运行脚本时:

cit.vbs test

我收到消息“未指定项目文件”

如果我这样运行: cscript vit.vbs test

我得到输出:“在项目测试中运行脚本”

为什么??为什么我不能在没有指定cscript的情况下传入参数?

注意我已经使用cscript而不是wscript配置我的Windows运行vbs文件,因为我发现wscript有奇怪的问题,我不想要GUI元素 - 但这是一个不同的问题

1 个答案:

答案 0 :(得分:2)

在没有命名解释器/主机的情况下调用脚本时会发生什么情况,具体取决于assoc / ftype文件关联设置。

所以使用

assoc .vbs
.vbs=VBSFile

ftype VBSFile
VBSFile=%SystemRoot%\System32\CScript.exe "%1" %*

确保命令行模式包含转发参数的%*

更新评论:

assoc / ftype是命令行工具。一个简单的assoc /? resp。 ftype /?会向您显示详细信息(包括处理参数的示例)。但请使用您熟悉的方法。