我有一个 CMD 文件,它将 MsgBox 弹出命令写入 VBScript 文件,然后转身立即执行它。最初它只是使用“确定”按钮来消除用户版本已过期的警告。我想修改它以使用是/否/取消按钮来允许用户自动版本更新。
这是导致弹出窗口的代码。我尝试了一些不同的方法来尝试让 .vbs 文件返回一个值,但在获取正确的语法时遇到问题。有什么建议吗?
@echo X=MsgBox("Your Version: %VER%" +vbCrLf+ "Recommended: %RVER%" +vbCrLf+ "Do you want to update the version?",vbYesNoCancel,"Warning Message"^) >%APPDATA%\temp_msg2.vbs
call %APPDATA%\temp_msg2.vbs
谢谢!
最佳答案
VBScript 只是一种语言,具有许多不同的主机和应用程序 - 不仅仅是 shell 脚本,因此设置脚本的返回值是主机的责任,而不是语言的责任。在这种情况下,主机是 cscript
或wscript
(分别适用于命令行和窗口主机)。两台主机均公开 WScript
对象,您可以在其中将返回代码指定为 Quit
的参数方法(请注意,VBScript 在 void
( Sub
) 方法调用中不使用括号:
WScript.Quit 123
如果你想返回 MsgBox
的值您可以直接提供:
WScript.Quit MsgBox( "Foobar" )
您的.cmd
批处理文件需要知道 vbYes
的数值, vbNo
,和vbCancel
.
...我建议从 VBScript 文件中执行所有脚本并避免使用 .cmd
/.bat
如果可以的话,请完整地保存文件,因为 VBScript 更具可读性和更强大(尽管我更喜欢使用 JScript 语言,但这只是我的想法)。
MSDN 引用了WScript
的所有成员。对象:https://msdn.microsoft.com/en-us/library/at5ydy31(v%3Dvs.84).aspx
此页面列出了 wscript
中可用的其他对象和功能。/cscript
(统称:“Windows 脚本宿主”):https://msdn.microsoft.com/en-us/library/98591fh7(v=vs.84).aspx
关于vbscript - 从 Windows CMD 调用的 .vbs 获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567816/