Переменные формы HTA передаются в командный файл - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь сохранить файл .hta в той же папке, что и файл .exe, который я хочу запустить.Я понимаю, что есть как минимум 2 способа запустить это приложение из файла .hta.

Я бы предпочел, чтобы код был завершен внутри одного файла, вместо того, чтобы отправлять пользовательские входные переменные в пакетный файл,но все, что работает лучше всего.

  1. .hta должен определить, в какой рабочей папке (SourceDir) он работает, и использовать его как часть переменной команды для .exe
  2. пользователь выберет из выпадающего списка несколько вариантов.Все, что выбрано, будет использоваться как часть командной переменной для .exe (в дополнение к вышеупомянутому) 2a.пользователь может затем ввести значение в текстовое поле, которое добавит дополнительную переменную к .exe
  3. , после чего у пользователя будет 2 кнопки, чтобы щелкнуть, чтобы заполнить форму.Все, что выбрано, определяет путь для последней части вывода командной строки.

текущий пакетный файл для пути 1:

     @echo off
     cd SourceDir
     app.exe -v --log-file testH.txt -H -L "SourceDir\123\x.dll" 
     "SourceDir\456\abc.rar"

текущий пакетный файл для пути 2:

    @echo off
    cd SourceDir
    app.exe -v --log-file testC.txt -C usertext -L "SourceDir\123\x.dll" 
    "SourceDir\456\abc.rar"

У меня есть базовый код, который не совсем работает:

    <SCRIPT LANGUAGE="VBScript">
     Sub Hosting
       Set Shell = CreateObject("WScript.Shell")
       Shell.run "app.exe -v --log-file testH.txt -H -L "& 
       SourceDir.Value & "123\x.dll" & SourceDir.Value & "456\abc.rar"
     End Sub
    </SCRIPT>

Как мне получить поля формы и данные источника для работы с этим exe-файлом?Было бы проще перенести переменные в пакетный файл и соответственно отредактировать?

small section part:

    <html>
    <head>
    <title>Test</title>  
    <HTA:APPLICATION  
         ID="objHTA_Info"  
         APPLICATIONNAME="HTA_Info"  
         SINGLEINSTANCE="yes"  
    >
    <script language="VBScript"> 
    FullName = replace(objHTA_Info.commandLine,chr(34),"")  
    arrFN=split(FullName,"\")  
    FileName = arrFN(ubound(arrFN))  
    SourceDir=replace(FullName,FileName,"")  
    Sub Window_onLoad  
        html = "<TABLE><TR><TD><b>Directory of app.exe </b></TD></TR><TR><TD>" & SourceDir & "</TD></TR></TABLE>"
        BLAH.InnerHTML = html  
    End Sub

    Sub RunProgram
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "app.exe -L " & SourceDir & "123\x.dll" & SourceDir & "456\abc.rar"
    End Sub
    </script>
    </head> 
    <body>
    <button onclick="RunProgram">Run app.exe</button>
    <SPAN ID=BLAH></SPAN>
    </body>
    </html>

Первая часть скрипта работает нормально и отображает правильный путь к рабочей директории.При нажатии на кнопку открывается приложение, но происходит сбой из-за ошибок параметров.

Без параметров работает нормально:

       Sub RunProgram
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "app.exe"
       End Sub

Мне нужны параметры!Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 31 мая 2018

Попытайтесь поместить всю команду в переменную и используйте msgbox, чтобы убедиться, что синтаксис правильный.Я не знаю, ошибаюсь ли я, но я думаю, что у вас должно быть пространство между "123\x.dll" & SourceDir.

Я не специалист по пакетным файлам, но где вы ловите параметр?

...