【发布时间】:2016-10-08 16:22:29
【问题描述】:
如何在不使用 cscript.exe 的情况下从 VBScript 传递和返回参数?
例如,我想从 script1 调用 script2,它返回一个值给 script1,而不涉及 cscript.exe。
我搜索了各种答案,但不知何故涉及cscript.exe的使用。
此脚本获取已安装的声音并设置文件voice.txt 中提供的声音。
Set WshShell = CreateObject("WScript.Shell")
WShShell.CurrentDirectory = "..\Confirmatory Texts"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists("voice.txt") Then
Set temp = FSO.OpenTextFile("voice.txt")
confirm_voice = temp.ReadLine()
temp.Close
Set Sapi = CreateObject("SAPI.SpVoice")
For Each Voice In Sapi.GetVoices
i = i + 1
Next
For loopvar = 0 To i-1
If loopvar = CInt(confirm_voice) Then
Set Sapi.Voice = Sapi.GetVoices.Item(loopvar)
End If
Next
Else
WScript.Echo "An Error Occured"
End If
如果我从另一个脚本调用这个脚本,我怎样才能让这个脚本返回一些值给调用它的脚本?
【问题讨论】:
-
请edit您的问题并提供两个脚本的minimal reproducible example。正如目前所写,您的问题似乎有点不清楚
script2是什么,script1是什么,他们如何互相称呼等等......为什么不使用wscript.exe而不是cscript.exe?顺便说一句,Sapi.GetVoices.Item(loopvar)是一个 对象ISpeechObjectToken;你不能把它当作一个字符串来操作…… -
VBScript 帮助文件在这里microsoft.com/en-au/download/details.aspx?id=2764。请参阅脚本组件。另一种方法是使用 32 位 CScript 并加载脚本控件,将第二个脚本加载到脚本控件中并执行它。我在这里的回答表明 - stackoverflow.com/questions/26952155/….
-
我希望上面的脚本返回一些值给调用它的脚本,我该怎么做?顺便说一句,感谢大家回复