Ниже приводится обычная функция журнала, которую я использую во многих своих сценариях vbscripts, которые я соответствующим образом изменяю. Мне кажется, он пишет слишком медленно. У меня 3 вопроса:
- Есть идеи, как оптимизировать это, чтобы он писал быстрее?
- Было бы быстрее сначала сохранить весь текст в строке, а затем запустить функцию OutputToLog, или было бы быстрее выполнять OutputToLog каждый раз, когда мне нужно было вставить строку в текстовый файл?
- Если место на диске не имело значения, возможно ли, что во время записи в текстовый файл во время выполнения закончится нехватка памяти ... что приведет к тому, что сценарий будет выполняться все медленнее и медленнее?
Вот моя функция vbscript
Function OutputToLog (strToAdd)
Dim strDirectory,strFile,strText, objFile,objFolder,objTextFile,objFSO
strDirectory = "c:\log"
strFile = "\log-"& StampNow & ".bat"
'strText = "test"
strText = strToAdd
' Create the File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Check that the strDirectory folder exists
If objFSO.FolderExists(strDirectory) Then
Set objFolder = objFSO.GetFolder(strDirectory)
Else
Set objFolder = objFSO.CreateFolder(strDirectory)
'WScript.Echo "Just created " & strDirectory
End If
If objFSO.FileExists(strDirectory & strFile) Then
Set objFolder = objFSO.GetFolder(strDirectory)
Else
Set objFile = objFSO.CreateTextFile(strDirectory & strFile)
'Wscript.Echo "Just created " & strDirectory & strFile
End If
set objFile = nothing
set objFolder = nothing
' OpenTextFile Method needs a Const value
' ForAppending = 8 ForReading = 1, ForWriting = 2
Const ForAppending = 8
Set objTextFile = objFSO.OpenTextFile _
(strDirectory & strFile, ForAppending, True)
' Writes strText every time you run this VBScript
objTextFile.WriteLine(strText)
objTextFile.Close
End Function
заранее спасибо