2016-10-27 2 views
1

Я хочу создать HTA, который использует пакетный файл, когда пользователь заполняет текстовые поля, он передает данные в пакетный файл.* .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% 

Я хочу передать вход и выход из ОМТ в пакетном файле

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

%input% %output% 
+0

http://www.dostips.com/forum/viewtopic.php?t=6581 – Squashman

+0

«чувствует себя», вы имеете в виду «заполняет»? –

ответ

0

Довольно уверен, что вам не нужно использовать пакетный файл для всего этого.

Что-то, как это должно работать:

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

Примечание - Я просто угадывая имена переменных (входных и выходных) вы используете в ОМТ, так что вам придется переименовать те, к каким-либо переменным которые содержат исходные данные, которые вы хотели передать в пакетный файл. Кроме того, лишь догадываясь, что это будет в VBScript ...

EDIT: Чтобы ответить на комментарий более полно, что-то вроде этого:

<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 в пакетном файле.

+0

Как бы добавить это в HTA и иметь текстовое поле для ввода пользователем – user2071435

+0

https://technet.microsoft.com/en-us/library/ee692603.aspx показывает, как добавить одно текстовое поле и получить его значение. Вам просто нужно сделать два. – 0x90h

+0

Обновлен ответ, чтобы показать пример объединения исходного ответа и примера из приведенной выше ссылки. Он * должен * работать, предполагая, что путь к этому приложению существует. – 0x90h

Смежные вопросы