vbscript - 如何从 HTA 中启动批处理文件

标签 vbscript batch-file cmd 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 相同的工作目录(或子目录)启动批处理文件?

谢谢

最佳答案

在任何地方启动 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

关于vbscript - 如何从 HTA 中启动批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200837/

相关文章:

batch-file - 为什么在 "set/p"提示时使用 Ctrl+C 取消 Windows 批处理脚本会产生不一致的行为?

batch-file - 如何将文件夹的每个子文件夹中除最新文件之外的所有文件压缩为每个子文件夹一个 ZIP 文件?

batch-file - winrs reg 查询有效,但 reg 查询主机名无效

powershell - 如何从 PowerShell 写入 .CMD 文件?

IIS 7/Pure ASP 文件上传问题

sql-server - XML 批量加载到 SQL Server 的问题

excel - 如果数组已由 Range 分配,则 LBound 和 Ubound 冲突

windows - 通过批处理脚本启动 Windows 可执行文件,exe 不在程序文件中

windows - 查找电脑IP,查找局域网内所有电脑的IP

vbscript - 尝试 "Include".VBS 文件中的 .ASP 文件