本文介绍了带有HTA前端的VBScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,我有一个漂亮的VBS,它将在巨大的日志文件中搜索某些字符串,但是我并不总是想在每个日志文件中搜索每个字符串.我想要一个HTA前端,它允许最终用户选择他们要查找的字符串.

OK, I have a nifty VBS that will search huge log files for certain character strings, but I don't always want to search every log file for every string. I'd like an HTA frontend that allows the end user to select what strings they want to look for.

这是我的代码的示例,可以作为vb很好地工作,但是在此示例中,我希望使用复选框来显示母牛,山羊,猫,狗等.并且无论脚本如何运行,脚本都可以正确运行选择了很多..(我的实际脚本有大约20个单词可供选择),并且动物日志文件"的路径和名称也是当前的输入框. >

Here is a sample of my code and it works great as a vb, but in this example, i'd like checkboxes for cows, goats, cats, dogs, etc.. and for the script to run correctly no matter how many are selected.. (my actual script has about 20 words to choose from) and also the path and name of the 'animal log file' is currently an input box.. i'd like that in the hta as well.

Const ForReading = 1
Dim words(7)
Dim msg
words(0) = "cows"
words(1) = "goats"
words(2) = "cats"
words(3) = "dogs"
words(4) = "elephants"
words(5) = "giraffes"   


Set objFSO = CreateObject("Scripting.FileSystemObject")

strAnswer = InputBox("Please enter the path & filename for the animal log file:", _
    "Create File")
Wscript.Echo strAnswer

Set objFile = objFSO.OpenTextFile( strAnswer, ForReading)
Set inFile = objFSO.OpenTextFile ( strAnswer, ForReading)


strContents = objFile.ReadAll
objFile.Close

Set outFile = objFSO.OpenTextFile( strAnswer &"_parsed-output.txt", 8, True)

Do Until inFile.AtEndOfStream
    strSearchString = inFile.ReadLine
    For i = 0 To UBound(words)-1
    If InStr(strSearchString,words(i)) Then
        msg = msg&strSearchString&vbcrlf
    End If
    next
Loop

inFile.Close
outfile.WriteLine msg

WScript.Echo "Done!"

推荐答案

这可以帮助您入门.您将需要编码如何处理是否选中了多个复选框,以及打开那些日志文件(多个日志文件)所需的代码逻辑.您可以在这里找到有关HTA的更多信息, http://technet.microsoft.com/zh-CN/scriptcenter/dd742317.aspx

This can get you started. You will need to code in how to handle if multiple checkboxes are selected and the code logic required to open those log files (multiple log files). You can find more info about HTAs here, http://technet.microsoft.com/en-us/scriptcenter/dd742317.aspx

<html>
<head>
<title>My Logfile App</title>
<HTA:APPLICATION
  APPLICATIONNAME="My Logfile App"
  ID="MyLogfileApp"
  VERSION="1.0"/>
</head>

<script language="VBScript">

Sub Window_OnLoad
  window.resizeto 300,300
End Sub

Sub Start_Button()

    Const ForReading = 1
    Dim objFSO, objFile, inFile, strAnswer
    strAnswer = ""

    If chkCows.Checked Then strAnswer = "Cows"
    If chkGoats.Checked Then strAnswer = "Goats"
    If chkCats.checked Then strAnswer = "Cats"
    If chkDogs.Checked Then strAnswer = "Dogs"
    If chkElephants.Checked Then strAnswer = "Elephants"
    If chkGiraffes.Checked Then strAnswer = "Giraffes"

    'If strAnswer is empty then nothing was checked.
    If strAnswer = "" Then 
        Window.Alert "Please Make an Selection!"
        Exit Sub
    End If

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile( strAnswer, ForReading)
    Set inFile = objFSO.OpenTextFile ( strAnswer, ForReading)

    strContents = objFile.ReadAll
    objFile.Close

    Set outFile = objFSO.OpenTextFile( strAnswer &"_parsed-output.txt", 8, True)

    Do Until inFile.AtEndOfStream
        strSearchString = inFile.ReadLine
        For i = 0 To UBound(words)-1
        If InStr(strSearchString,words(i)) Then
            msg = msg&strSearchString&vbcrlf
        End If
        next
    Loop

    inFile.Close
    outfile.WriteLine msg

    Window.Alert "Done!"
End Sub
</script>

<body bgcolor="white">
<center>
    <label>Choose your logfile below.</label><br />
</center>
<input type="checkbox" name="chkCows" id="chkCows">Cows<br />
<input type="checkbox" name="chkGoats" id="chkGoats">Goats<br />
<input type="checkbox" name="chkCats" id="chkCats">Cats<br />
<input type="checkbox" name="chkDogs" id="chkDogs">Dogs<br />
<input type="checkbox" name="chkElephants" id="chkElephants">Elephants<br />
<input type="checkbox" name="chkGiraffes" id="chkGiraffes">Giraffes<br />
<p>
<center>
    <input type="button" name="btnStart" id="btnStart" value="Start" onclick="Start_Button">
</center>
</body>
</html>

这篇关于带有HTA前端的VBScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 17:31