*.HTA 带有用户输入的批处理文件变量

*.HTA with batch file user entered variables

我想创建一个使用批处理文件的 HTA,当用户填写文本框时,它会将数据传递给批处理文件。

我的批处理文件是:

//batch
@ECHO OFF
CD "h:\tools\ffmpeg\bin"
set /p input="Enter input file: "
set /p output="Enter output file: "
ffmpeg.exe -i %input% %output%

我想将 HTA 的输入和输出传递给批处理文件

set /p input="enter input"
set /p output="enter output"

%input% %output%

很确定您根本不需要为此使用批处理文件。

像这样的东西应该可以工作:

Set Shell = CreateObject("WScript.Shell")
Shell.run "h:\tools\ffmpeg\bin\ffmpeg.exe -i " & Input & " " & Output 

注意 - 我只是猜测您在 HTA 中使用的变量名称(输入和输出),因此您必须将它们重命名为包含您最初想要传递给的输入的任何变量批处理文件。也只是猜测它会在 VBScript 中...

编辑: 为了更完整地回答评论,像这样:

<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION 
     ID="objTest" 
     APPLICATIONNAME="HTATest"
     SCROLL="yes"
     SINGLEINSTANCE="yes"
>
</head>

<SCRIPT LANGUAGE="VBScript">

    Sub TestSub
        Set Shell = CreateObject("WScript.Shell")
        Shell.run "h:\tools\ffmpeg\bin\ffmpeg.exe -i "& InputTextbox.Value & " " & OutputTextbox.Value
    End Sub

</SCRIPT>

<body>

    Input : <input type="text" name="InputTextbox" size="30"><P>
    Output: <input type="text" name="OutputTextbox" size="30"><P>
    <input id=runbutton  type="button" value="Run Script" name="run_button"  onClick="TestSub">

</body>

实际尝试将参数从 HTA 传递到批处理文件的人请注意:
假设您已经从用户那里获取了输入,您可以将其传递给批处理文件(就像将参数传递给上面的 EXE 一样),但您不需要 set /p 行。相反,您将在批处理文件中将输入和输出引用为 %1%2