【问题标题】:call vbsript from .bat or cmd从 .bat 或 cmd 调用 vbscript
【发布时间】:2015-02-08 16:39:51
【问题描述】:

我正在尝试使用下面的脚本调用 vbscript。

几乎一切正常,但似乎忽略了WScript "%~dp0\close.vbs"这一行

close.vbs 脚本在某些应用程序中关闭对话框,但在 cmd 中不知道如何操作。

批处理脚本

FOR %%f IN (*.obj) DO (
    start "C:\Program Files\VCG\MeshLab\meshlab.exe" %%f
    WScript "%~dp0\close.vbs"
    nircmd.exe cmdwait 3000 savescreenshot "%%~nf_OBJ.png"
    taskkill /F /IM meshlab.exe
)

close.vbs

Set oShell = CreateObject("WScript.Shell")
oShell.AppActivate("Opening Problems")
WScript.Sleep 500
oShell.SendKeys "~"

【问题讨论】:

  • 您好,感谢您的快速评论,我正在使用 .bat 运行上述代码。但它不工作" WScript "%~dp0\close.vbs" "
  • 您应该更新问题。不工作还不够!描述问题是什么。例如。它找不到脚本,没有输出等。
  • 我正在尝试更新问题
  • 更新了问题,请检查屏幕截图我是否无法在此处上传它们
  • 我为您编辑了您的帖子。发布可以直接在帖子中显示的代码的屏幕截图通常被认为是不好的形式。您是否尝试过逐步执行每一行以查看它是否在批处理文件之外工作?

标签: batch-file vbscript cmd


【解决方案1】:

这是一个时间问题。在 vbs 脚本中添加 WScript.Sleep 2000 就可以了:

WScript.Sleep 2000
Set oShell = CreateObject("WScript.Shell")
oShell.AppActivate("Opening Problems")
oShell.SendKeys "~"

【讨论】:

  • 嗨,是否可以将这四行直接添加到批处理脚本中。而不是调用它?