Vbscript 运行vb脚本不会;见;参数,除非使用cscript前缀运行

Vbscript 运行vb脚本不会;见;参数,除非使用cscript前缀运行,vbscript,parameters,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: " & projec

因此,我有一个基本脚本,它只打印传入的参数:

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测试

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

如果我这样运行它:
cscript vit.vbs测试

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

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


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

调用脚本而不命名解释器/主机时会发生什么,取决于assoc/ftype文件关联设置

所以使用

assoc .vbs
.vbs=VBSFile

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

更新wrt注释:


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

VBScript中没有打印命令。您的代码错误。@很抱歉,我忘记添加打印函数。。将添加it@Noodles没有GUI,我不需要像MsgBox这样的操作(这是一个可以用wscript调用的图形元素)。@事实上,我只是用打印功能的一部分替换了打印功能,因为另一部分是登录到file@Noodles也,我说的是GUI元素,不是GUI程序,所以不需要文本喊,谢谢:)啊酷,我不知道你必须这么做。您是否通过命令行运行这些命令?-如果是这样的话,这会在全球范围内改变吗?(我通过windows GUI界面建立了vbs关联)您应该通过正确的工具进行更改。键入
wscript/?
(或
cscript/?
)以查看如何更改。@面条-问题不在于更改默认主机,而是处理/传递参数。他手动更改了它,因此不正确。通过正确操作来修复它。@我通过
控制面板\Programs\Default Programs\Set Associations
更改了.vbs的关联。我现在将它改回基于windows的脚本,而不是基于控制台的脚本。但事实上我还是遇到了同样的问题。ftype VBSFile产生:
VBSFile=“%SystemRoot%\System32\WScript.exe”“%1”%*
。所以我只是通过cscript调用我的脚本。。。。
ftype VBSFile
VBSFile=%SystemRoot%\System32\CScript.exe "%1" %*