2014-02-05 21 views
0

如果我按批處理文件中的關閉(x)按鈕,我想運行一個腳本。假設批處理文件正在運行,如果我按關閉(x)按鈕,我想在關閉批處理文件未完成運行之前運行一些腳本。如果按批處理文件中的關閉(x)按鈕,運行腳本

+0

你不能(或者至少不是沒有在程序中託管批處理文件) - 請更新你的問題與你試圖達到的目標,這可能是一個更好的方法,我們可以建議。 –

+0

我想通過按close(x)按鈕在運行批處理文件時關閉批處理文件之前運行標籤(某些命令集)。 –

+0

當批處理文件運行時按下close(x)按鈕時,是否可以避免關閉批處理文件? –

回答

1

使用來自不同批處理文件的start並添加/ WAIT參數。

這樣:

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

Additional info here

這是,據我所看到的,只有合適的方式來獲得,甚至接近解決在使用只有你要求我們使用該系統的問題。由於windows的批處理實現沒有辦法檢測批處理窗口何時關閉並停止。

+0

我仍然可以在運行時關閉該文件... –

+0

此代碼將在新窗口中運行其他批處理文件._當該_other_窗口關閉時,將會運行'REM additional post-close code here'後的任何內容。 – Winderps

+0

我有一個main.bat文件,其中我主要使用mk123456批處理文件編譯我的代碼。以前我用「CALL mk123456」執行批處理文件。現在我正在使用START CALL mk123456/WAIT,但mk123456批處理文件本身並未執行...即使我嘗試使用START mk123456/WAIT但沒有使用.. –

0

你可能想看看像this。爲了避免用戶關閉窗口 - 只是不要向他們顯示窗口。

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

您可以使用下面的VBS腳本,這將運行兩個文件(「Hidden.bat」和「Visible.bat」),這樣,當爲「Visible」關閉時,「隱藏」將在不運行正在顯示。這是基於unclemeat的回答和this post

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

但是我不知道如何將參數(尤其是多字的)傳遞給批處理腳本。

相關問題