0

OK、特定の文字列の巨大なログ ファイルを検索する気の利いた VBS がありますが、すべてのログ ファイルですべての文字列を常に検索したいわけではありません。エンド ユーザーが探したい文字列を選択できる HTA フロントエンドが欲しいです。

これが私のコードのサンプルで、vb としてうまく機能しますが、この例では、牛、山羊、猫、犬などのチェックボックスが必要で、いくつ選択してもスクリプトが正しく実行されるようにします。 .. (私の実際のスクリプトには約 20 の単語から選択できます) また、「動物のログ ファイル」のパスと名前も現在入力ボックスになっています.. hta にも入力したいと思います。

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!"
4

1 に答える 1

4

これで始められます。複数のチェックボックスが選択されている場合の処理​​方法と、それらのログ ファイル (複数のログ ファイル) を開くために必要なコード ロジックをコーディングする必要があります。HTA の詳細については、 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>
于 2013-04-09T20:12:41.117 に答える