Я использую VBScript, чтобы выбрать определенные части файла .txt на основе шаблона, а затем выводить его в другой файл .txt.VBScript запускается из пакетного файла (.BAT), и часть, в которой VBScript создает файл .txt с именем «progress.txt», предназначена для того, чтобы пакетный файл мог знать, когда закончился VBScript, и мог продолжить.
Я продолжаю получать сообщение о том, что переменная ForWriting
в строке 13 уже определена, но я не вижу нигде в коде, где она была ранее определена.Я попытался полностью исключить переменную ForWriting
и просто поставить 2 после части "hourextracted.txt", но сценарий по какой-то странной причине крайне нестабилен.
Другая странная вещьв том, что скрипт на самом деле работает.Работает нормально.Я продолжаю получать сообщение об ошибке, но скрипт все еще выполняет свою работу, и он делает это хорошо.Все, что я хочу, чтобы сообщение об ошибке исчезло.У меня есть пара других сценариев, которые в основном идентичны этому, которые используются в командном файле, которые прекрасно работают без получения сообщения об ошибке, даже если код тот же.Только этот, однако, получает сообщение об ошибке.
Вот код:
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("hour.txt", ForReading)
strSearchString = objFile.ReadAll
objFile.Close
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.Pattern = "\d{2}"
Set colMatches = objRegEx.Execute(strSearchString)
If colMatches.Count > 0 Then
For Each strMatch in colMatches
Set obj = CreateObject("Scripting.FileSystemObject")
Const ForWriting = 2
Set obj1 = obj.OpenTextFile("hourextracted.txt", ForWriting)
obj1.WriteLine(strMatch.Value)
obj1.Close
Set obj = Nothing
outFile = "proceed.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "null" & vbCrLf
objFile.Close
Next
End If