HTA表单变量传递给批处理文件

时间:2018-05-29 04:52:53

标签: forms directory hta

我正在尝试将.hta文件保存在与我希望运行的.exe相同的文件夹中。我了解至少有两种方法可以从.hta文件启动此应用程序。

如果代码可以在一个文件中完成,我更喜欢它,而不是将用户输入变量发送到批处理文件,但无论什么效果最好。

  1. .hta必须确定它正在运行的工作文件夹(SourceDir)并将其用作.exe
  2. 的命令变量的一部分
  3. 用户将从下拉列表中选择几个选项。无论选择哪种,都将用作.exe的命令变量的一部分(除了上述内容) 2A。然后,用户可以选择在文本框中输入一个值,该值将为.exe
  4. 添加一个额外的变量
  5. 然后用户将有2个按钮单击以完成表单。无论选择什么,都会指示命令行输出的最后部分的路径。
  6. 路径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>
    

    如何让表单字段和sourcedir数据在此exe上运行? 是否更容易将变量转移到批处理文件并进行相应的编辑?

    小部分:

        <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 :(得分:0)

尝试将所有命令放在变量中并使用msgbox查看语法是否正确。我不知道我错了,但我认为你应该在"123\x.dll" & SourceDir之间留出空格。

我不是批处理文件专家,但你在哪里捕获参数?