如果另一个任务已关闭,请关闭VBS脚本

时间:2015-04-21 17:03:34

标签: batch-file vbscript

我尝试使用混合的VBS和批处理文件构建一个带有背景音乐的基本安装程序。

我的脚本开头有一段代码,应该在安装程序执行时播放一首歌。问题是如果安装程序强制关闭,VBS脚本将继续播放音乐。

以下是相关代码:

7za.exe x INSTALL\MUSIC -oINSTALL\MUSIC -r -y >NUL
set file=INSTALL\MUSIC\MUSIC.mp3
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
  echo Sound.URL = "%file%"
  echo Sound.Controls.play
  echo do while Sound.currentmedia.duration = 0
  echo wscript.sleep 100
  echo loop
  echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
    start /min sound.vbs

基本上我需要一种方法让VBS脚本知道install.bat文件是否已被强制关闭。我假设我会使用某种形式的if函数,但我不确定如何去做。

1 个答案:

答案 0 :(得分:0)

您可以使用与此博客文章类似的代码来查看批处理文件是否仍在运行:

http://blogs.technet.com/b/heyscriptingguy/archive/2006/06/01/how-can-i-find-the-process-id-associated-with-a-batch-file.aspx

您可以编辑WMI查询以专门查找批处理命令进程,而不必循环遍历它们。实现此目的的最佳方法是创建一个运行WMI查询并返回True或False的函数。在do while循环中调用该函数,如果它没有找到正在运行的批处理文件,则wscript.quit

基于您通过回显批处理文件创建VBScript的事实,这可能需要一段时间才能弄明白。我建议不要从批处理文件创建VBScript,而是单独创建VBScript,然后使用必要的参数调用它。如果您不知道如何处理参数,我建议您现在了解它,因为如果您打算做这样的事情,它会让您的生活更轻松。