VBScript для проверки строки в файлах и обновления результатов в выходном файле - PullRequest
0 голосов
/ 16 апреля 2019

При использовании VBScript при выполнении указанных ниже операций проверка наличия или отсутствия файлов в файлах, доступных в одном каталоге, и обновление выходного файла. Я сталкиваюсь с ошибкой, что выходной файл filecheck.txt обновляется со всеми именами файлов, но результат (ДА, НЕТ) недоступен в файле.

Dim FSO, LogFile, rdFile
Dim bFound, srtContents, installed

Set FSO = CreateObject ("Scripting.FileSystemObject")

objStartFolder = "C:\xyz\JS271\J273"

Set LogFile = FSO.CreateTextFile("C:\xyz\JS271\J273\filecheck.txt",True)
Set objFolder = FSO.GetFolder(objStartFolder)

LogFile.WriteLine objFolder.Path

Set colFiles = objFolder.Files
For Each objFile In colFiles
    LogFile.WriteLine objFile.Name
Next

LogFile.WriteLine Echo

ShowSubfolders FSO.GetFolder(objStartFolder)

Sub ShowSubFolders(Folder)
    For Each Subfolder In Folder.SubFolders
        LogFile.WriteLine Subfolder.Path

        Set objFolder = FSO.GetFolder(Subfolder.Path)
        Set colFiles = objFolder.Files

        For Each objFile In colFiles
            LogFile.Write Subfolder.Path & objFile.Name
            Set rdFile = FSO.OpenTextFile(objFile.Path, 1, TristateFalse, -1)
            bFound = "False"
            installed = "Mass provisioning"
            Do Until rdFile.AtEndOfStream
                srtContents = rdFile.ReadLine
                If InStr(1, srtContents, installed, 1) > 0 Then 
                    bFound = "True"
                    Exit Do
                End If
            Loop
            rdFile.Close

            If bFound = "True" Then
                WScript.Sleep(5000)
                WScript.Echo "50 seconds have passed."
                LogFile.Write "Yes" & Chr(100)
                LogFile.WriteLine Echo
            Else
                WScript.Sleep(5000)
                WScript.Echo "50 seconds have passed."
                LogFile.Write "No" & Chr(100)
                LogFile.WriteLine Echo
            End If
        Next
        LogFile.writeLine Echo
        ShowSubFolders Subfolder
    Next
End Sub
...