我想创建一个使用批处理文件的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%
答案 0 :(得分:1)
非常确定您根本不需要使用批处理文件。
这样的事情应该有效:
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
。