Vbscript 如何让cmd知道VB脚本已经完成?

Vbscript 如何让cmd知道VB脚本已经完成?,vbscript,Vbscript,我正在使用此处的解决方案将.csv转换为.xlsx: 我试着从.cmd运行这个命令,一切正常,但是当你从cmd运行它时,命令马上就完成了,尽管vb脚本仍然在运行。有没有办法让cmd知道vb已经完成了?我正在尝试创建一个批处理文件,所以在进入下一步之前,最好知道这部分何时完成。谢谢 通过使用call批处理脚本将等待脚本引擎进程终止/T允许您设置超时。如果运行时间超过以秒为单位指定的限制,进程将被中断 @echo off call cscript //T:10 "%~dp0example.vbs"

我正在使用此处的解决方案将.csv转换为.xlsx:


我试着从.cmd运行这个命令,一切正常,但是当你从cmd运行它时,命令马上就完成了,尽管vb脚本仍然在运行。有没有办法让cmd知道vb已经完成了?我正在尝试创建一个批处理文件,所以在进入下一步之前,最好知道这部分何时完成。谢谢

通过使用call批处理脚本将等待脚本引擎进程终止/T允许您设置超时。如果运行时间超过以秒为单位指定的限制,进程将被中断

@echo off
call cscript //T:10 "%~dp0example.vbs" 
ECHO %ERRORLEVEL%
pause
在vbs脚本中使用返回退出代码。错误号存储在Err.number属性中

On Error Resume Next
WScript.Sleep 2000
Err.Raise 507 ' An exception occurred
wscript.quit Err.number

您可能正在独自运行脚本:

C:\path\to\your.vbs
这样做将使用关联的解释器运行脚本,在正常安装中,解释器是。基本上,上述内容与

wscript.exe C:\path\to\your.vbs
wscript.exe
异步启动脚本,这意味着脚本在后台继续运行时,它会立即返回。为了同步运行脚本,您需要使用命令行解释器。添加参数
//NoLogo
以抑制版权/版本信息消息

cscript.exe //NoLogo C:\path\to\your.vbs
因此,只有在VBScript终止后,批处理脚本的执行才会继续。不需要使用该命令


您可以将默认解释器从
wscript.exe
更改为
cscript.exe
,方法是以管理员身份运行
wscript.exe//h:cscript
cscript.exe//h:cscript

可能不是完全重复,但以下内容似乎相关:可能类似的内容就足够了。
//code>到底是关于什么?命令开关是
/
。从
cmd
提示符
cscript.exe/nologo
可以正常工作。查看
cscript/?
的输出。我想最初的目的是区分解释器的参数和脚本的参数。
//NoLogo
/NoLogo
现在似乎都能工作,但对解释器参数使用双斜杠已成为我的习惯。好吧,我从来没有注意到,因为主机参数总是对我使用
/
有效。一直在学习,非常感谢。cscript非常适合我。
cscript.exe //NoLogo C:\path\to\your.vbs