【发布时间】:2009-02-03 02:17:58
【问题描述】:
以下是我在许多 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
提前致谢
【问题讨论】:
-
您不必检查文件是否存在,只要将True作为第三个参数传递,OpenTextFile就会创建文件如果它不存在。它可能不会节省很多时间,但会节省一些打字时间。
标签: optimization vbscript