如果在批处理文件中按下关闭(x)按钮,请运行脚本

时间:2014-02-05 17:15:24

标签: windows batch-file cmd

如果按批处理文件中的关闭(x)按钮,我想运行脚本。假设批处理文件正在运行,如果我按下关闭(x)按钮我想在关闭批处理文件未完成运行之前运行一些脚本。

3 个答案:

答案 0 :(得分:1)

使用其他批处理文件中的start并添加/ WAIT参数。

因此:

@echo off
start %cd%/yourbatchfilehere.bat /WAIT
REM additional post-close code here.

Additional info here

据我所知,这是仅使用您要求我们使用的系统来解决问题的唯一合适方法。由于windows的批处理实现无法检测批处理窗口何时关闭并停止它。

答案 1 :(得分:0)

您可能希望查看this之类的内容。为了避免用户关闭窗口 - 只是不要向他们显示窗口。

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "mk123456.bat" & Chr(34), 0
Set WshShell = Nothing

答案 2 :(得分:0)

您可以使用以下vbs脚本,它将运行两个文件('Hidden.bat'和'Visible.bat'),这样当'Visible'关闭时,'Hidden'将在不显示的情况下运行。这是基于unclemeat的答案和this post

set WshShell=createobject("wscript.shell") 
WshShell.run "Visible.bat", 1, true
WshShell.Run chr(34) & "Hidden.bat" & Chr(34), 0

但是我不知道如何将参数(尤其是多字的参数)传递给批处理脚本。