2013-04-24 106 views
3

我有一个基本的HTA,我试图通过按钮启动批处理文件,但是当我尝试启动批处理文件时,它不运行。 当我按下按钮时,命令提示窗口启动但不运行脚本。如何从HTA内启动批处理文件

下面是代码的简单例子:

<HTML> 
    <HEAD> 
    <TITLE>Fix</TITLE> 
    </HEAD> 
    <BODY> 
    <FORM> 
     <INPUT TYPE="Run" NAME="Button" VALUE="Click"> 

     <SCRIPT FOR="Button" EVENT="onClick" LANGUAGE="VBScript"> 
     Set WshShell = CreateObject("WScript.Shell") 
     WshShell.Run "cmd.exe '.\example.bat'" 
     </SCRIPT> 

    </FORM> 
    </BODY> 
</HTML> 

我怎样才能从相同的工作目录(或子目录)作为我的HTA启动一个批处理文件?

谢谢

+1

您是否尝试过仅仅调用批处理文件,而不是先调用cmd.exe? – 2013-04-24 19:53:57

+0

感谢马特,这对我和其他建议都有效。 – Bajan 2013-04-24 21:36:28

回答

6

你在任何地方发动CMD过程时需要使用/C/K参数作为第一个参数。

/C  Run Command and then terminate 

/K  Run Command and then return to the CMD prompt. 

尝试:

WshShell.Run "cmd.exe '/C example.bat'" 

但这只是为什么您的脚本不工作,因为不需要使用CMD的解释,你可以直接原因运行批处理文件”的ShellExecute

+0

嗨,我试着用/ C开关,但它只是简单地启动了一个黑色的cmd框并关闭,但不执行脚本。 我能得到它与马特的建议,工作只是直接调用.bat文件,如: WshShell.Run“example.bat” 感谢您的帮助! – Bajan 2013-04-24 21:00:13

+0

更新:我的道歉,这也确实工作!我之前尝试通过UNC路径运行它。 感谢您的支持! – Bajan 2013-04-24 21:35:31

+1

np Bajan但如果我的答案解决了您的问题,那么请使用接受按钮接受我的答案。问候。 – ElektroStudios 2013-04-24 23:44:46