如果按批处理文件中的关闭(x)按钮,我想运行脚本。假设批处理文件正在运行,如果我按下关闭(x)按钮我想在关闭批处理文件未完成运行之前运行一些脚本。
答案 0 :(得分:1)
使用其他批处理文件中的start
并添加/ WAIT参数。
因此:
@echo off
start %cd%/yourbatchfilehere.bat /WAIT
REM additional post-close code 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
但是我不知道如何将参数(尤其是多字的参数)传递给批处理脚本。